SpringBoot的热部署主要有两种方式:
- SpringLoader插件方式
- DevTools工具
1. 使用SpringLoader方式
使用SpringLoader方式实现热部署,需要在创建的项目文件的pom.xml添加SpringLoader的插件。
<!-- springloader 插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.5.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
此种方式是基于Maven的,需要使用Maven的命令才能启动项目,否则此插件将不会生效。
使用maven启动项目命令: spring-boot:run
但是使用SpringLoader插件的缺陷在与,虽然此种方式能够实现java代码的热部署,但是对于页面内容的更改处理无能为力。
而且此种方式的热部署最大的缺陷在于需要手动关闭此热部署的线程,因为此热部署会创建一个进程,即使在Eclipse中停止了项目,此进程依旧占据端口,当二次运行时,如果不手动关闭,则会显示端口被绑定,运行失败。
2. 使用SpringLoader的jar包方式
直接创建一个lib包文件,将SpringLoader的jar放入,然后再Run Configuration中配置JVM的相应参数,
也即启动命令:
-javaagent:.\lib\springloaded-1.2.5.RELEASE.jar -noverify
其余和上述基本一致。
扫描二维码关注公众号,回复:
9114145 查看本文章
3. 使用DevTools工具的方式
在创建的项目中修改pom.xml放入devTools的依赖,注意对于依赖中的optional
选项如果设置为true则表示当有项目以此作为父项目时,此设置不会被传递。
<!-- DevTools 的坐标 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
使用DevTools工具与SpringLoader的区别在于:
DevTools工具:实现的热部署是java项目的重新部署方式。对于java项目的更改,直接重新部署,对于html页面的修改,默默的进行部署,不会显示在控制台。
SpringLoader:实现的是真正的热部署。