本文最后更新于 889 天前,其中的信息可能已经有所发展或是发生改变。
1. 热部署
代码语言:javascript复制<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.8.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
使用mvn build-spring-boot:run
启动,只对修改返回值有效,而对添加方法无效。
2. 重新部署
代码语言:javascript复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<version>2.2.3.RELEASE</version>
</dependency>
当java代码改变时,自动编译,并重新部署项目。原理是修改后服务会快速重启,深层原理是使用了两个classloader,一个classloader加载那些不会改变的类,另一个classloader加载会更改的类,成为restart Classloader。这样代码有更改的时候,原来的restart Classloader被丢弃,重新创建一个restart Classloader,由于需要加载的类比较少,所以实现了较快的重启时间(5s以内)。对于添加方法仍有效。
Post Views: 433