idea实现springboot热部署方法
网上搜索的关于springboot热启动(部署)的资料
大部分都只能实现热启动项目,即不需要手动重启,idea会自动重启项目。修改一行代码,整个项目重新编译启动,难受不难受?
最近刚从eclipse转到idea,之前在eclipse中如果只是对类中的方法进行了修改,不需要做任何操作修改的代码就能生效。而现在智能idea似乎不支持这样做?各种搜索之后,好不容易才找到靠谱的做法。
以下是不用插件,达到和eclipse中类似效果的方法。先总结一下: 使用快捷键ctrl+shift+F9重新rebuild,一个快捷键搞定!
转载地址:https://blog.csdn.net/lihongjing/article/details/82662892
转载原文如下:
spring mvc项目在eclipse中使用tomcat启动可以实现即改即现,也就是修改了java代码代码之后不需要重新部署就可以看到运行效果。现在的开发环境变成了spring boot和idea,也想实现相同的效果,于是展开了研究,过程相对曲折和搞笑。
一、热启动和热部署的区别(仅代表个人看法)
1、热启动:修改代码后,服务可自动重启,通过console可看出,这种做法并不好用!
2、热部署:修改代码后,服务不需要重启,只替换相关的class即可生效。
很多博文中没有搞清楚热启动和热部署的区别。
二、spring boot在idea中的热启动
在pom文件中添加依赖,就可以实现热启动了。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
三、spring boot在idea中的热部署
1、直接用application启动
在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模式会失效。
2、使用maven启动
添加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
环境准备好后有两种方式启动:
一种是没添加jvmArguments,直接使用spring-boot:run启动,这种方式不支持debug。
一种添加了jvmArguments,先启动spring-boot:run,然后启动刚才添加的remote,这种是两个服务,一个正常的服务,一个debug服务,控制台的输出并不在一起,也是很难用。
综上所述,这些添加依赖,添加插件的做法,通通不好用,以上都是废话!
其实,在idea中debug启动spring boot,如果修改了java代码,只需要ctrl+shift+F9重新rebuild一下即可实现热部署!!!