Java 运行时刷新Springbean
我有一个XML文件,其中XML的值在Springbean对象中获取。我正在使用一个文件监视程序来检查XML是否正在被修改。如果它被修改,我必须在运行时刷新Springbean对象Java 运行时刷新Springbean,java,spring,Java,Spring,我有一个XML文件,其中XML的值在Springbean对象中获取。我正在使用一个文件监视程序来检查XML是否正在被修改。如果它被修改,我必须在运行时刷新Springbean对象 import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardWatchEventKind; import java.nio.file.WatchEvent; import
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKind;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;
import java.util.List;
public class Main {
public static void main(String[] args) {
//define a folder root
Path myDir = Paths.get("D:/data");
try {
WatchService watcher = myDir.getFileSystem().newWatchService();
myDir.register(watcher, StandardWatchEventKind.ENTRY_CREATE,
StandardWatchEventKind.ENTRY_DELETE, StandardWatchEventKind.ENTRY_MODIFY);
WatchKey watckKey = watcher.take();
List<WatchEvent<?>> events = watckKey.pollEvents();
for (WatchEvent event : events) {
if (event.kind() == StandardWatchEventKind.ENTRY_MODIFY) {
//CODE FOR REFRESHING BEAN
}
}
}
}
import java.nio.file.Path;
导入java.nio.file.path;
导入java.nio.file.StandardWatchEventKind;
导入java.nio.file.WatchEvent;
导入java.nio.file.WatchKey;
导入java.nio.file.WatchService;
导入java.util.List;
公共班机{
公共静态void main(字符串[]args){
//定义文件夹根目录
Path myDir=Path.get(“D:/data”);
试一试{
WatchService watcher=myDir.getFileSystem().newWatchService();
myDir.register(watcher、StandardWatchEventKind.ENTRY\u创建、,
StandardWatchEventKind.ENTRY\u删除,StandardWatchEventKind.ENTRY\u修改);
WatchKey WatchKey=watcher.take();
ListSHow与bean相关的部分和spring init。实际上,您可以从spring上下文访问bean并更改XML。将观察程序重构为bean,将主bean作为成员注入观察程序。当观察程序解析了新的和经过验证的数据后,调用主bean上的方法,使其从解析的XML.Wat刷新自身检查是否存在同步问题。