6、添加路径
使用spring.devtools.restart.additional-paths
来添加非classpath的文件路径,添加后的路径下文件修改后会导致重启。
7、取消重启
你可以在application.properties
下设置spring.devtools.restart.enabled=false
来取消重启。这样做仍然会初始化restart类加载器,但它不会监视文件更改。
如果要完全关闭重启功能,需要在调用SpringApplication.run(…)前关闭,如:
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(MyApp.class, args);
}
8、设置触发文件
trigger file是一个当修改时触发重启检查的文件夹。需要注意的是,所有的文件修改都会触发检查,但是只有重启检查才能启动重启。
使用spring.devtools.restart.trigger-file=.reloadtrigger
把src/main/resources/.reloadtrigger
设置为trigger file。只有在该目录下文件修改时才会重启。
9、配置Restart 类加载器
在使用devtools的应用中,有两个类加载器。restart类加载器和base类加载器。base类加载器加载常规的jar文件。restart类加载器会预先加载你所修改的类,在应用重启后把这些类加载到类路径中后,继续创建一个新的restart类加载器。
你可以在META-INF/spring-devtools.properties
中配置restart类加载器。restart.include
属性将类拉到restart类加载器。restart.exclude
将类压入到base类加载器。
10、局限性
重新启动功能不能很好地处理使用标准ObjectInputStream反序列化的对象。如果需要反序列化数据,可能需要将Spring的ConfigurableObjectInputStream与Thread.currenthread().getContextClassLoader()结合使用。
11、LiveReload
spring-boot-devtools包含了LiveReload server 来应对浏览器的刷新。适用的浏览器有Chrome, Firefox 和Safari。你可以关闭它,通过设置spring.devtools.livereload.enabled=false
。
12、全局设置
在你的$HOME
文件夹中添加一个.spring-boot-devtools.properties
的文件,里面的配置都会用于在你机器里面的所有使用了devtools的Spring Boot应用。