IDEA创建的SpringBoot项目如何实现热部署功能(每次修改代码不需要手动启动项目)
上一篇我们已经创一个简单的SprinBoot项目。在页面输入http://localhost:8080/hello?name=123
页面返回hello:123。即简单的一个SpringBoot项目搭建完成,但是我们发现,修改代码,不管是前端还是后端,我们都需要重新启动项目,非常浪费时间,所以热部署非常有必要。
如果是使用了JRebel插件的同学,请看https://baijiahao.baidu.com/s?id=1622699908035860372&wfr=spider&for=pc(转载他人的)。
1.打开项目,点击File->Setting(或者快捷键Ctrl+Alt+S),打开设置面板
2.左上角输入框内输入Compiler,右侧详细栏里输Build project automatically前面的打勾选中,然后然后点击APPLY按钮。
3.Ctrl+Shift+A快捷键,进入搜索栏目,当你电脑登录微信的时候,可能和微信的截屏快捷键冲突,这里你也可以双击Shift,进入文件搜索栏,在搜索栏里输入Registry…
4.找到compiler.automake.allow.when.app.running后面打勾,然乎Close即可
5.最重要的部分:在项目的pom.xml文件中加入以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
还需要插件配置中配上如下配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
6.然后我们需要重新启动IDEA。
7.我们测试一下效果:我们依旧在主函数入口写下如图函数:
启动项目后,在浏览器地址栏输入http://localhost:8080/hello?name=123 返回hello:123。
当我们输入http://localhost:8080/hello 返回的是hello:null
我们修改一下逻辑,当没有参数的时候,我们返回当前时间:
当new Date()包红的时候,说明没有导入jar包,在文件头上输入:import java.util.Date;就可以了。
在页面如输入http://localhost:8080/hello 返回了时间,我们并不需要重启项目。说名热部署配置成功了。
这里需要补充说明一下:之前用过SSH或者SSM框架的时候,我们之前会使用JRebel插件,这里我们如果用JRebel插件启动,热部署并没有用,Jrebel插件是实现重新编译,重新发布,所以页面返回结果很快,SpringBoot的热部署,是帮你自动重启项目,所以你需要多刷新页面几次,可能才会有效果,并且建议:关闭浏览器缓存功能(F12–>netword–>Disable cache勾上)。