美文网首页亚武学习
Springboot热部署相关配置

Springboot热部署相关配置

作者: 亚武de小文 | 来源:发表于2019-06-24 15:59 被阅读0次

Springboot热部署配置(Thyemleaf、Idea、Devtools)

LengToo灯泡爱.png

在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,浪费了大量的时间,Spring提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。

一、devtools原理及引入

  • 原理:
    使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

  • pom依赖:

    <!-- spring-boot-devtools 热部署 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional> <!-- 表示依赖不会传递 -->
    </dependency>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
                </configuration>
            </plugin>
        </plugins>
    </build>
    

二、application.yml配置

  1. Thyemleaf模板缓存禁用:
    # 模板引擎
    thymeleaf:
        mode: HTML
        encoding: utf-8
        # 禁用缓存
        cache: false
    
  2. 热部署开启及自定义
     # 服务模块
      devtools:
        restart:
          # 热部署开关
          enabled: true
          #禁用日志报告
    #      log-condition-evaluation-delta: false
          #不需要修改触发重启的文件目录
    #      exclude: static/,public/
          #默认配置下还需要在新增的排除目录
    #      additional-exclude:
          #添加需要监视需改文件后重启的路径
    #      additional-paths:
    

三、Idea设置

  1. File --> Settings --> Build,Execution,Deployment --> Compiler,勾选
Idea配置1.png
  1. 使用快捷键Crtl+Shift+Alt+/,并打开Registry,勾选图中红框所示
Idea配置2.png Idea配置3.png
  1. 重启项目。至此,修改页面(Idea自动保存)刷新后,即可看到修改的内容。

相关文章

网友评论

    本文标题:Springboot热部署相关配置

    本文链接:https://www.haomeiwen.com/subject/mjkoqctx.html