springboot热部署有三种方法,推荐最后一种
在第一第二中方法之前,先在pom.xml中加入配置:
方法一(推荐):springboot + devtools
(1)先在pom.xml中添加依赖包
(2)添加spring-boot-maven-plugin
此热部署在修改类、添加配置文件、修改页面都生效。
备注:spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间(5秒以内)。
1. devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的。 2. devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现(这里注意不同的模板配置不一样)
方法二(不推荐):在pom.xml中添加配置信息,再在maven build中添加spring-boot:run(但是关闭程序之后端口号还是会被占用,因为进程并没有结束)
方法三(不推荐):run as – java application(此种方法在新增一个类方法之后无法成功)
手动添加spring-loader-1.2.4.RELEASE.jar到lib目录,再将VM参数设置为:-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar -noverify