一. SpringBoot的热布署
在开发当中,如果我们的代码发生了改变,我们想让其生效,那么就需要重新启动服务,这样会浪费太多的时间。 我们希望不重启服务,当代码发生了改变,即使是微小的改变,也可以被检测到,这种方式就叫做热布署。SpringBoot很好的提供了这一支持。
老蝴蝶接下来,就验证一下 SpringBoot热布署操作。
一.一 通过maven创建 DevTools项目
老蝴蝶采用Maven的方式创建了 DevTools项目,用于验证热布署。
添加了一个 HelloController的响应类,进行响应字符串信息。 pom.xml 依赖,还是以前的那些依赖。
application.yml 配置信息是:
server: port: 8027 servlet: context-path: /Yue
一.二 无热布署时的操作
输入网址: http://localhost:8027/Yue/ 可以正常的响应数据。
这个时候,如果我们想改变 toHello()方法里面的响应信息,变成 “我是两个蝴蝶飞” 。
刷新浏览器,发现浏览器的响应信息依旧没有发生改变。
只有当我们重新启动服务器之后,刷新,才可以看到改变后的信息。
这是没有热布署的情况下,方法里面代码发生了一点点改变,也必须要重启服务器。
一.三 SpringBoot实现热布署操作
为了避免 Idea对热布署产生影响,我们需要先对Idea进行配置,允许Idea进行静态编译和动态编译。
一.三.一 Idea开启静态自动编译
File—>Settings—>Build,Execution,Deployment—>Compiler—>勾选 Build project automatically
一.三.二 Idea开启动态自动编译
按住快捷键 Ctrl+Shift+Alt+/ ,选中 Registry
会进入到
从这里面找到
compiler.automake.allow.when.app.running 和 compiler.document.save.enabled 选项 (按照字典顺序进行查询,老蝴蝶以前设置过,所以在最前面),进行勾选, 点击关闭,再次打开,就会发生已经勾选了。