0

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

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

请让我知道这是否可能。如果是,那么如何?

4

1 回答 1

1

对于属性自动重新加载,您可以使用 FileSystemManager 和 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();

    }



}

}

于 2013-09-23T12:43:02.803 回答