SpringBoot 热部署方式

原则上只要我们修改了代码  那么我们就必须重新启动才可以 这样做的效率会大大降低  如果在我们修改代码后自动生效呢 

这里就需要我们进行热部署   


1 首先在 pom.xml中 引入我们的插件  


<build>
  	<plugins>
  		<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>
  	</plugins>
  </build>
2 我们下载下来  springloaded-1.2.4.RELEASE.jar  放在本地的文件夹   我是在项目中创建一个lib目录放了进去 

3 在项目中 右键  run As --->run  Configurations...  

4 找到  Arguments 选项卡   在Vm arguments 中 写入  

-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar -noverify

5 这个时候我们发现 修改了代码后 不需要重启 只要刷新浏览器即可  

那么现在问题又来了    修改原方法代码后虽然可以  但是当我们创建了一个新的方法  却无法访问到   这个时候我们也要解决这个问题  


接下来我们需要用spring-boot-devtools  里面有个重要的功能的是自动应用代码更改到App 

发现代码有改动之后重新启动,原理是使用两个Classloader ,一个加载了不会改变的类 也就是导入的jar包  

另一个加载会发生改变的类 而这个ClassLoader发现代码有变化则会释放掉原来的ClassLoader而创建一个新的重新来加载 

由于不用加载导入的jar包 只需要加载我们自己写的那些 所以启动速度更快了 

1 添加 依赖包 

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

2 之前的插件也需要修改一下 


  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.springframework.boot</groupId>
            		<artifactId>spring-boot-maven-plugin</artifactId>
       			<configuration>
       				<fork>true</fork>
       			</configuration>  
  		</plugin>
  	</plugins>
  </build>

现在我们发现 添加了方法 而无需手动重启 也是可以访问的  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值