关于Spring Boot的热部署方案,可以分为以下两种方式:
1. 使用Spring Dev Tools
Spring Dev Tools是一套由Spring官方开发维护的工具集,其中包含了实现热部署的功能。在Spring Boot的项目中使用Spring Dev Tools,只需要在pom.xml中引入以下依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>${spring-boot-version}</version>
</dependency>
引入依赖之后,只需要在IDEA等IDE工具中启用自动编译和自动重启功能即可。在IDEA中开启自动重启功能的具体操作步骤如下:
- 打开Preferences/Settings
- 依次点击Build, Execution, Deployment -> Compiler
- 勾选Build project automatically选项,保存设置
- 依次点击Build, Execution, Deployment -> Build Tools -> Gradle or Maven
- 勾选Build and run using: IntelliJ IDEA选项,保存设置
- 点击右上角的Toggle Automatic Build/Make选项,开启自动重启
示例1:
在IDEA中创建一个Spring Boot项目并引入Dev Tools后,修改Controller中的代码并保存,可以看到控制台中输出了以下信息:
2021-06-05 16:31:54.427 INFO 7648 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
说明Spring Dev Tools已经启用成功,代码修改已经自动实现热部署。
2. 使用JRebel
JRebel是一款并不免费的Java热部署工具,它可以实现在不重启整个程序的前提下,修改Java代码之后立即生效。使用JRebel需要在pom.xml中引入JRebel插件,并在IDEA或Eclipse等IDE工具中启用相应的JRebel插件。
在pom.xml中引入JRebel插件的依赖:
<plugin>
<groupId>org.zeroturnaround</groupId>
<artifactId>jrebel-maven-plugin</artifactId>
<version>1.1.8</version>
<executions>
<execution>
<id>generate-rebel</id>
<phase>process-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
引入依赖之后,需要在IDEA中安装JRebel插件,并在启动Spring Boot项目时添加JRebel启动参数,在IDEA中添加JRebel启动参数的具体步骤如下:
- 打开Preferences/Settings
- 依次点击Build, Execution, Deployment -> Compiler
- 在右侧的Command line parameters:输入框中添加如下参数:
-noverify -javaagent:<JRebel安装路径>/jrebel.jar
其中,
示例2:
在IDEA中创建一个Spring Boot项目并引入JRebel插件后,修改Controller中的代码并保存,可以看到控制台中输出了以下信息:
2021-06-05 16:38:15.581 INFO 8075 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2021-06-05 16:38:15.586 INFO 8075 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
说明JRebel已经启用成功,代码修改已经自动实现热部署。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于SpringBoot的热部署方案 - Python技术站