第三章:SpringBoot热部署devtool和配置文件自动注入实战
03-1 SpringBoot2.x 使用Dev-tool热部署
简介:介绍什么是热部署,使用springboot结合dev-tool工具,快速加载启动应用
官方地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-devtools
核心依赖包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
添加依赖后,在ide里面重启应用,后续修改后马上可以生效
classloader
官方地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-devtools
核心依赖包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
添加依赖后,在ide里面重启应用,后续修改后马上可以生效
不被热部署的文件
1、/META-INF/maven, /META-INF/resources, /resources, /static, /public, or /templates
2、指定文件不进行热部署 spring.devtools.restart.exclude=static/**,public/**
3、手工触发重启 spring.devtools.restart.trigger-file=trigger.txt
改代码不重启,通过一个文本去控制
https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-devtools-restart-exclude
注意点:生产环境不要开启这个功能,如果用java -jar启动,springBoot是不会进行热部署的
1.热部署介绍
由于 Spring Boot 应用程序是普通的 Java 应用程序,因此 JVM 热交换应该是开箱即用的。JVM 热交换在某种程度上受限于它可以替换的字节码。对于更完整的解决方案,可以使用JRebel。
该spring-boot-devtools模块还包括对快速应用程序重新启动的支持。
开发者工具
Spring Boot 包含一组额外的工具,可以使应用程序开发体验更加愉快。该spring-boot-devtools模块可以包含在任何项目中,以提供额外的开发时功能。要包含 devtools 支持,请将模块依赖项添加到您的构建中,如以下 Maven 和 Gradle 清单所示:
Maven:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
Gradle:
dependencies {
developmentOnly("org.springframework.boot:spring-boot-devtools")
}
运行完全打包的应用程序时,开发人员工具会自动禁用。如果您的应用程序是从
java -jar特殊的类加载器启动或启动的,则它被视为“生产应用程序”。您可以使用spring.devtools.restart.enabled系统属性来控制此行为。要启用 devtools,无论用于启动应用程序的类加载器如何,请设置-Dspring.devtools.restart.enabled=true系统属性。这不能在运行 devtools 存在安全风险的生产环境中完成。要禁用 devtools,请排除依赖项或设置-Dspring.devtools.restart.enabled=false系统属性。
如果添加依赖文件之后不生效的话解决措施:
IDEA的setting中设置

之后快捷键
ctrl+shift+alt+/,选择registry。


注意:不被热部署的文件
1、/META-INF/maven, /META-INF/resources, /resources, /static, /public, or /templates2、指定文件不进行热部署 spring.devtools.restart.exclude=static/,public/
3、手工触发重启 spring.devtools.restart.trigger-file=trigger.txt
改代码不重启,通过一个文本去控制
还有后续工作,大家点赞评论收藏关注走起来!!!学起来!!!
1106

被折叠的 条评论
为什么被折叠?



