spring mvc项目在eclipse中使用tomcat启动可以实现即改即现,也就是修改了java代码代码之后不需要重新部署就可以看到运行效果。
现在的开发环境变成了spring boot和idea,也想实现相同的效果,于是展开了研究,过程相对曲折和搞笑。
1、热启动:修改代码后,服务可自动重启,通过console可看出,这种做法并不好用!
2、热部署:修改代码后,服务不需要重启,只替换相关的class即可生效。
很多博文中没有搞清楚热启动和热部署的区别。
在pom文件中添加依赖,就可以实现热启动了。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
在idea-edit configuartions-sring boot-EnterApplication-VM options中添加
javaagent:C:\Users\li_hongjing\.m2\repository\org\springframework\springloaded\1.2.7.RELEASE\springloaded-1.2.7.RELEASE.jar -noverify
但是这种做法时好用时不好用,而且debug模式会失效。
添加spring-boot-maven-plugin,并添加springloaded的依赖,其中注意jvmArguments
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <!-- spring热部署--> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.7.RELEASE</version> </dependency> </dependencies> <configuration> <executable>true</executable> <jvmArguments> -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 </jvmArguments> </configuration> </plugin>
添加remote
环境准备好后有两种方式启动:
综上所述,这些添加依赖,添加插件的做法,通通不好用,以上都是废话!
其实,在idea中debug启动spring boot,如果修改了java代码,只需要ctrl+shift+F9重新rebuild一下即可实现热部署!!!
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。