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

Myeclipse下使用Maven搭建spring boot项目采用spring boot devtools实现热部署

2018-01-25 10:04 1146 查看
        在上一篇中已经将项目等一些基本配置都配置好了,下面配置热部署:

引入包:

<!-- spring boot devtools 依赖包. -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>

然后在的pom.xml中的pulgin替添加如下的代码:
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<version>2.5</version>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<maimClass>com.controller.App</maimClass>
<!--fork :  如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
<fork>true</fork>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

说明:

1、devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的。

2、devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现(这里注意不同的模板配置不一样)。

在修改以下代码都不需要重启服务器:修改类、配置文件、页面文件(原理是将spring.thymeleaf.cache设为false)之后ctrl+s:应用会重启。

如果不能使用的话,以下就几种常见的问题:

1、对应的spring-boot版本是否正确,这里使用的是1.5.3版本;

2、是否加入plugin以及属性<fork>true</fork>

3、Eclipse Project 是否开启了Build Automatically(开启自动编译的功能)。

4、如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。

最后,这两种方式springloader、devtools只需要配置
4000
一种即可,建议使用devtools,可以支持更多的代码热部署。

文章参考:http://blog.csdn.net/a78270528/article/details/77584881
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: