问题的提出:
在编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来就真的是打几个Hello World就下班了。那么如何解决热部署的问题呢?那就是springloaded;
在pom.xml文件添加依赖包:
<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>
运行方法一:使用spring-boot:run
这时会下载一些文件,下载完成后会启动应用,等启动成功后测试:
未修改前测试结果:
修改后不用重启结果:
@RequestMapping("/getDemo")
public Demo getDemo(){
Demo demo = new Demo();
demo.setAddress("谁登录11111看风景");
demo.setAge(12221);
demo.setCreateTime(new Date());
return demo;
}
测试成功!
运行方法二:(有点麻烦而且有bug,仅做了解)
如果使用的run as – java application的话,那么还需要做一些处理。
把spring-loader-1.2.4.RELEASE.jar下载下来,放到项目的lib目录中,然后把IDEA的run参数里VM参数设置为:
-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar -noverify
然后启动就可以了,这样在run as的时候,也能进行热部署
说明:Springloaded不是最终选择的热部署方案,这两种方式仅做了解;因为:通过使用springloaded进行热部署,但是有些代码修改了,并不会进行热部署。比如新创建一个方法、新属性等,这些并没有被部署到服务器;