代码拉取完成,页面将自动刷新
同步操作将从 baomidou/mybatis-mate-examples 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package mybatis.mate.hotreload;
import com.sun.nio.file.SensitivityWatchEventModifier;
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
public class WatchServiceTest {
// https://www.cnblogs.com/zimug/p/11774958.html
public static void main(String[] args) throws IOException, InterruptedException {
// 构造监听服务
WatchService watchService = FileSystems.getDefault().newWatchService();
Path targetPath = Paths.get(
"D:\\IdeaProjects\\mybatis-mate-examples\\mybatis-mate-hot-reload\\src\\main\\resources"
).toAbsolutePath();
Files.walkFileTree(targetPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult preVisitDirectory(Path path, BasicFileAttributes attrs) throws IOException {
//监听注册,监听实体的创建、修改、删除事件,并以高频率(每隔2秒一次,默认是10秒)监听
path.register(watchService, new WatchEvent.Kind[]{StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE},
SensitivityWatchEventModifier.HIGH);
return FileVisitResult.CONTINUE;
}
});
WatchKey watchKey;
do {
//获取一个watch key
watchKey = watchService.take();
for (WatchEvent<?> event : watchKey.pollEvents()) {
WatchEvent<Path> watchEvent = (WatchEvent<Path>) event;
WatchEvent.Kind<Path> kind = watchEvent.kind();
Path watchable = ((Path) watchKey.watchable()).resolve(watchEvent.context());
// 在监听到文件夹创建的时候要把这个 path 注册到 watchService 上
if (Files.isDirectory(watchable)) {
if (kind == StandardWatchEventKinds.ENTRY_CREATE) {
System.out.println("新建目录 = " + watchable);
watchable.register(watchService, StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY);
}
} else {
if (kind == StandardWatchEventKinds.ENTRY_CREATE) {
System.out.println("新建文件 = " + watchable);
} else if (StandardWatchEventKinds.ENTRY_MODIFY == event.kind()) {
System.out.println("修改文件 = " + watchable);
} else if (StandardWatchEventKinds.ENTRY_DELETE == event.kind()) {
System.out.println("删除文件 = " + watchable);
}
}
}
System.out.println("目录内容发生改变");
} while (watchKey.reset());
System.out.println("目录内容sssss发生改变");
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。