2、Spring-boot热部署

什么是热部署:

简单来说,就是你修改了代码后,不需要重新启动项目就可以在浏览器上直接显示你修改后的效果。

·第一种方法(在spring-boot:run时才有效)
我在实验的时候,在修改返回值,添加新方法,添加新类同时添加新方法, 都可以实时返回新值。
但是在添加一个新的controller的时候是不成功的

<plugin><!-- 热部署插件 -->
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin </artifactId>
    <dependencies> 
                 <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>

·第二种方法
在pom.xml中添加

<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-devtools</artifactId>  
    <optional>true</optional>
    <!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 -->  
</dependency> 

在pom.xml中添加

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <!-- "如果没有该项配置,devtools不会起作用,即应用不会restart",有人这么说,有人说不弄也行,我没有试过,加上不就得了,没必要瞎折腾 -->
        <fork>true</fork>
    </configuration>
</plugin>

异常处理:
如果不能使用的话,以下就是几种常见的解决方法:
1、看对应的spring-boot-starter-parent版本是否正确。我在运行的时候就抛出App.main异常,更换依赖管理的版本后就好了。换一个更高版本的。
2、是否加入spring-boot-maven-plugin以及属性true
3、Eclipse Project 是否开启了Build Automatically(开启自动编译的功能)。
4、如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。(这个我没试过,百度上是这么说的)

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值