spring boot: 热部署
1. 修改java方法内容:使用springloader减少发布次数
1. Pom添加编译节点
<build> <plugins> <!-- 热部署 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin </artifactId> <dependencies> <!--springloaded hot deploy --> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.4.RELEASE</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>exec</classifier> </configuration> </execution> </executions> </plugin> </plugins> </build> |
2. 测试和效果
添加运行参数: 启动类=》右键=》Run as=》runConfigurations=》Arguments=》Program arguments 添加如下参数:
-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar –noverify |
Apply
启动类右击 debug as =》 java application
在Controller中返回user对象的字段不断修改,不重启springboot 访问url 显示不同的对象
@RequestMapping("/getUser") public User getUser(){ User u = new User(1L, "小般般222", "胡话", 30, new BigDecimal(10000000.00)); u.setCreateTime(new Date()); returnu; } |
1. 修改类、配置文件、页面:保存=局部刷新发布devtools(修改类、配置文件、页面:保存)
1. Pom.xml添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <version>1.5.8.RELEASE</version><!--$NO-MVN-MAN-VER$--> <optional>true</optional><!-- 表示依赖不会传递 --> </dependency> |
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork><!-- 如果没有该配置,devtools不会生效 --> </configuration> </plugin> |
l 注意:页面缓存要去除,比如:spring.thymeleaf.cache=false
l Ide一定要勾选自动构建
注意:
出现如下异常: ===>>>无法获取实体类com.svw.tbox.tcloud.security.auth.entity.UserToken对应的表名! |
原因是:UserToken对应是临时加载器加载,导致不能使用 解决:目前解决方案是,只要用到myabtis mapper连接数据库的微服务 不要用devtools做热部署 |
效果:
新增一个方法,保存的时候;控制台会打印新的发布信息