Spring Boot新模块devtools

28 6月

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版还有一个改进就是对于默认日志格式的覆盖,这也是一个直接期待的小加强。

发表评论

电子邮件地址不会被公开。