您的位置:首页 > 编程语言 > Java开发

基于Maven的SpringBoot项目实现热部署的两种方式

2017-12-13 21:31 1151 查看




devtools

Pom.xml中直接添加依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>1.5.8.RELEASE</version>
</dependency>
1
2
3
4
5
6
7

通过项目主程序入口启动即可,改动以后重新编译就好。


springloaded

Pom.xml中直接在spring-boot插件中添加依赖即可:
<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.6.RELEASE</version>
</dependency>
</dependencies>
<configuration>
<mainClass>cn.springboot.Mainspringboot</mainClass>
</configuration>
</plugin>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

运行:
$ mvn clean spring-boot:run
1

改动后,编译即可实现热部署


结束语

这两种方式其实都是spring官网为了spring项目所推出的jar包,加之springBoot框架内嵌服务器的优势,使得改动后的项目部署变得非常简单;当我使用以后这两种方法以后,发现真正实现热部署的只是后者,前者只是实现了热启动而已,从控制台日志就可以看出来。


说明

项目使用maven管理,不然这篇简单实用的文章不适合你
第一种方式配置文件改动后不能触发热启动
第二种方式配置文件改动后不能触发热部署,会提示一下错误
2017-05-24 11:54:53.276 ERROR 12063 --- [Loader@18b4aac2] org.springsource.loaded.ReloadableType   : Unable to find regeneration methods for cglib proxies - proxies will be out of date for this type
1
由于使用IDE的不同,编译快捷键也可能不同,笔者实用intellij idea ,对应快捷键 Ctrl+Shift+F9,也可以设置自动编译(见这篇文章),eclipse
没记错的话是默认自动编译


参考文章

http://www.cnblogs.com/java-zhao/p/5502398.html
http://blog.csdn.net/u014695188/article/details/52262146
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: