SpringBoot热部署

最近在写一些项目在进行调试和修改总需要手动重启很麻烦,于是就想到了对项目进行热部署。然后就在网上搜集了一些热部署相关的内容,在这里总结一下,方便自己使用。

使用devTools来进行热部署

###1. Spring DevTools

Spring DevTools是Spring团队开发的一个模块,旨在提供开发时的快速迭代和调试支持。它包含以下主要功能:

  • 热部署: 在代码更改后,自动重新加载应用上下文,使更改立即生效。
  • 内嵌服务器支持: 支持内嵌服务器(如Tomcat)的快速重启。
  • 全局配置文件热加载: 允许在不重启应用的情况下更新全局配置文件。
  • 禁用特定缓存: 可以选择性地禁用特定的缓存,以便更快地看到代码更改的效果。

2.配置Spring DevTools

2.1初始化一个maven项目

 1<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3  <modelVersion>4.0.0</modelVersion>
 4
 5  <groupId>org.example</groupId>
 6  <artifactId>HotStart1</artifactId>
 7  <version>1.0-SNAPSHOT</version>
 8  <packaging>jar</packaging>
 9
10  <name>HotStart1</name>
11  <url>http://maven.apache.org</url>
12
13  <properties>
14    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15  </properties>
16
17  <dependencies>
18    <dependency>
19      <groupId>junit</groupId>
20      <artifactId>junit</artifactId>
21      <version>3.8.1</version>
22      <scope>test</scope>
23    </dependency>
24  </dependencies>
25</project>

2.2添加Spring DevTools相关依赖

1    <!--导入热部署依赖-->
2    <dependency>
3      <groupId>org.springframework.boot</groupId>
4      <artifactId>spring-boot-devtools</artifactId>
5      <scope>runtime</scope>
6    </dependency>

2.3在配置文件中添加相关配置信息

 1#devtools配置
 2spring:
 3  devtools:
 4    restart:
 5      #开启热部署
 6      enabled: true
 7      #热部署重新加载java下面类文件
 8      additional-paths: src/main/java
 9      #排除静态文件重新部署
10      #exclude: resources/**

2.4对idea进行相关配置

打开设置进行如下配置

再然后打开注册表(Ctrl+Shift+Alt+/)

3.开始测试

在项目中创建一个controller包,在创建一个类

 1@RestController
 2public class indexController {
 3    @GetMapping("/hello")
 4    @ResponseBody
 5    public String index(){
 6        System.out.println("接口请求成功");
 7        int a=0;
 8        return "hell123";
 9    }
10}

创建一个启动类

1@SpringBootApplication
2public class App 
3{
4    public static void main( String[] args )
5    {
6        SpringApplication.run(App.class);
7    }
8}

然后启动

项目正常启动,然后我们使用浏览器进行访问

访问正常后我们可以尝试对indexController里面的方法进行修改

当我们修改完并且切换到浏览器界面后就会发现项目已经自动加载了。

此时在对该接口访问就会发现内容已经发生了改变。