有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java自动重新加载属性文件

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

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

如果可能的话,请告诉我。如果是的话,怎么办


共 (1) 个答案

  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();
    
        }
    
    
    
    }
    

    }