1、首先简单说一下其核心的思想。devtools会监控classpath下的文件,如果发现classpath下的文件更新了,devtools就会重启项目。而classpath下的文件的更新是在我们保存文件时触发的,为什么这么说,因为ecplise有一个build automaticlly(默认勾选),当我们点击了保存,就会编译,接着classpath下的文件就会更新,从而触发重启。其原理就是这样,看到这里不知道你有没有想到一个问题,就是,如果我修改了好多文件,然后每点击一个文件都重启一次,岂不是也很苦逼,是的,devtools的开发者也想到了这点,所以他们给出了优化的方案,且往下看。
2、先创建个springboot项目一下,体验一下这个工具的使用过程。首先要创建一个springbootweb项目,如果不知道怎么创建springboot项目请看这篇文章。
3、我们只需要在项目找引入devtools所需要的jar包就完成了配置,是不是很简单。
4、接着,重启项目,在配置文件application.properties中加入一个端口地址的配置,看看项目是否重启。
5、发现项目重启了,我们也可以禁用重启只需配置spring.devtools.restart.enabled =false,这样在点击保存,就不会重启了。
6、接着,看一下,如何避免保存每个文件都会重启的问题,这个技术是使用触发器文件。其思想是,创建一个触发器文件(就是一个简单的文件,没什么特别),只要classpath下的文件更新了,且触发器文件也更新了,才会去重启项目。所以我现在在开发的时候总打开一个触发器文件,当我想重启项目时,只需要在里面输入个1,然后保存,项目就重启了,简直太方便了。
7、那就看看应该怎么配置,也就一行配置spring.devtools.restart.trigger-file=myRestartTrigger.my,然后在resource下创建这个文件。现在,修改application.properties文件,点击保存,此时并没有重启,然后在myRestartTrigger.my文件中随便输入一个字符串,点击保存,发现项目重启了。