自动重新加载属性文件

时间:2013-09-23 11:57:00

标签: java weblogic

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

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

请尽可能让我知道。如果是,那怎么样?

1 个答案:

答案 0 :(得分: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();

    }



}

}