Spring boot 热部署

本文详细介绍了使用SpringLoader和SpringBoot DevTools实现热部署的方法,包括在Maven项目中配置依赖,以及通过不同方式运行项目以避免端口冲突。同时,对比了两种热部署方案的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springloader

1,在pom.xml文件创建节点并且添加依赖包:
      <build>
          <plugins>
           <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin </artifactId>
             <dependencies>  
              <!--springloaded  hot deploy -->  
              <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>
     </plugins>
  </build>

 

 
 
运行方式1,
点击项目,
run 右击,run as ==> maven build
Goals 添加sring-boot:run
可能会tomcat端口占用
 
运行方式2,run as Java Application
点击程序入口(main函数)
添加VM 配置参数,就不会占用端口
把spring-loader-1.2.4.RELEASE.jar下载下来,放到项目的lib目录中,然后把IDEA的run参数里VM参数设置为:
-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar -noverify
 
 
springlaoder 热部署缺点:当代码修改的时候,热部署不会生效
 
springboot + devtools(热部署)
原理:底层由两个classLoader 类,一个classLoader 加载不会改变的jar包,一个classLoader去加载更改的类,成为restart classLoader,有代码更改之后,会重新启动应用。
devtools 会监视classpath 下的文件变动
 
1,pom 添加依赖
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
           <scope>true</scope>
</dependency> 

2,添加spring-boot-maven-plugin:

<build>
  <plugins>
      <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
             <configuration>
             <!--fork :  如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
                 <fork>true</fork>
             </configuration>
         </plugin>
  </plugins>
</build>

 

 
 
 

 

转载于:https://www.cnblogs.com/pickKnow/p/10496104.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值