问题的提出:
在编写代码的时候, 你会发现我们只是简单把打印信息改变了, 就需要重新部署, 如果是这样的编码方式, 那么我们估计一天下来就真的是打几个 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 进行热部署, 但是些代码修改了, 并不会进行热部署. 比如新创建一个方法, 新属性等, 这些并没有被部署到服务器;
来源: http://www.bubuko.com/infodetail-3073757.html