自动重新加载属性文件

问题描述 投票:0回答:1

我有一个基于 Web 的应用程序,它在属性文件中声明的属性很少。我正在使用 Weblogic 部署此应用程序。正如预期的那样,如果属性文件发生任何更改,我们必须重新启动 weblogic 服务器才能使更改生效。

但是,现在有一个要求,我应该避免在任何属性文件发生更改的情况下重新启动服务器。我想知道这是否可能,因为我找不到任何解决方案。

请告诉我是否有可能。如果是,那么如何?

java weblogic
1个回答
1
投票

对于属性自动重新加载,您可以使用 FileSysstemManager 和 VFS FileListener 在启动时使用 FileSystemManager 注册文件以进行监控。然后在文件更改时将调用 fileChanged,其中可以重新加载属性。

例如代码:

public class PropertyManager implements FileListener {

    @Override
    public void fileChanged(FileChangeEvent fileChangeEvent) {

        //Reload here into  memory
    }

}

private register(STring fileName) {

    String pathToPropertyFile = new ClassPathResource(fileName).getFile().getPath();
    FileSystemManager fsManager = VFS.getManager();
    FileObject listenFile = fsManager.resolveFile(pathToPropertyFile);

    DefaultFileMonitor fm = new DefaultFileMonitor(this);
    fm.setRecursive(true);
    fm.addFile(listenFile);
    fm.setDelay(15000);
    fm.start();

}
© www.soinside.com 2019 - 2024. All rights reserved.