问题的提出:
在编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来就真的是打几个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:.libspringloaded-1.2.4.RELEASE.jar -noverify 然后启动就可以了,这样在run as的时候,也能进行热部署
说明:Springloaded不是最终选择的热部署方案,这两种方式仅做了解;因为:通过使用springloaded进行热部署,但是有些代码修改了,并不会进行热部署。比如新创建一个方法、新属性等,这些并没有被部署到服务器;