Spring Boot新模块devtools
Spring Boot 1.3中引入了一个新的模块,devtools。
顾名思义,这个模块是为开发者构建的,目的在于加快开发速度。
这个模块包含在最新释出的1.3.M1中。
自动禁用模板缓存
一般情况下,View层都会应用诸如Thymeleaf之类的模版引擎,这些引擎一般会在启动或者第一次加载时编译自己,所以应用启动以后再修改它们就不会立刻生效。
当然,这种情况下你可以禁用掉缓存已达到快速调试的目的,比如对于Thymeleaf,你需要设置spring.thymeleaf.cache为false。
devtools会自动帮你做到这些,禁用所有模板的缓存,包括Thymeleaf, Freemarker, Groovy Templates, Velocity, Mustache等。
自动重加载
如果你修改了Controller类的代码,那么你只有手动重启来观察修改效果。
当然也可以配合其他工具来达到自动重加载的目的,比如 JRebel 或者 Spring Loaded。
现在只需要引入devtools就可以了,它会自动进行重加载。重加载时服务无法访问,下一部分的精力将会放在加快重加载速度,并尽可能自动侦测需要重新加载的类,减少不必要的开销。
在浏览器方面,devtools内置了一个LiveReload服务,可以自动刷新浏览器。
其他
还有个重要的改进是远程调试,主要针对Docker和Pass平台,调试使用的是JDWP。
目前1.3正式版还没有释出,M2版还有一个改进就是对于默认日志格式的覆盖,这也是一个直接期待的小加强。