Spring Boot 热部署

Spring Boot 热部署

实际开发中,修改某个页面数据或逻辑功能都须要重启应用。这无形中下降了开发效率,因此使用热部署是十分必要的。

什么是热部署?

应用启动后会把编译好的Class文件加载的虚拟机中,正常状况下在项目修改了源文件是须要所有从新编译并从新加载(须要重启应用)。而热部署就是监听Class文件的变更,只把发生修改的Class从新加载,而不须要重启应用,使得开发变得简便。

Spring Boot 配置实现热部署

第一种方式:maven 插件-springloaded

在spring-boot-maven-plugin插件配置中添加springloaded依赖。

<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>

经过命令:mvn spring-boot:run 启动应用,修改controller中代码 或 修改html页面 后(记得在idea上面按ctrl+shirt+F9从新加载修改过的class文件)再刷新页面,会发现显示结果跟着变化。

注意:第一种方式 对 mvn spring-boot:run 这种方式启动应用有效,而对直接运行Application.java启动应用无效。

注意1:若是发现没有热部署效果,则须要检查idea配置中有没有打开自动编译:html

打开 Preferences > Compiler , 勾选 Build project automatically

build auto.png

注意2:若是使用Thymeleaf模板引擎,须要把模板默认缓存设置为falsejava

在application.properties中添加:

#禁止thymeleaf缓存(建议:开发环境设置为false,生成环境设置为true) spring.thymeleaf.cache=false

第二种方式:依赖 spring-boot-devtools 热部署模块

pom.xml 添加依赖:

<!-- 热部署模块 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <!-- 这个须要为 true 热部署才有效 --> </dependency>

重启应用,修改controller中代码 或 修改html页面 后再刷新页面,会发现显示结果跟着变化。

相关文章
相关标签/搜索