10.Spring Boot热部署

目录


1. Spring Boot基本介绍及Eclipse插件安装(STS)

2. Spring Boot基本使用(Thymeleaf模板、国际化)

3. Spring Boot使用Thymeleaf模板引擎

4. Thymeleaf标签详细

5. Spring Boot自动配置

6. Spring Boot配置文件(yml、properties)

7. Spring Boot集成常用配置参数

8. Spring Boot常用注解及JPA注解

9. Spring Boot事务

10. Spring Boot热部署

11. Spring Boot中使用JSP

12. Spirng Boot自定义错误页面

13. Spring Boot防止表单重复提交实现方式

14. Spring Boot监听器、过滤器、拦截器

15. Spring Boot单元测试(Service、Mock、Feign、Http Rest API)

16. Spring Boot多线程基本使用

17. Spring Boot加载指定YML文件



Spring Boot热部署

Devtools原理

深层原理是使用了两个ClassLoader

1.Classloader:加载那些不会改变的类

Classloader会加载那些不会改变的类(第三方Jar包)


2.ClassLoader:加载会更改的类

ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间

(1)devtools可以实现页面热部署(即页面修改后会立即生效)

可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现,实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。 即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机)
注意:因为其采用的虚拟机机制,该项重启是很快的

(2)配置了后在修改java文件后也就支持了热启动

这种方式是属于项目重启(速度比较快的项目重启),会清空session中的值,也就是如果有用户登陆的话,项目重启后需要重新登陆。

默认情况下,/META-INF/maven、/META-INF/resources、/resources、/static、/templates、/public这些文件夹下的文件修改不会使应用重启,但是会重新加载(devtools内嵌了一个LiveReload server,当资源发生改变时,浏览器刷新)


热部署功能介绍

功能描述
修改类保存:应用会重启
修改配置文件应用会重启
修改页面应用不会重启,但会重新加载,页面会刷新

原理:将spring.thymeleaf.cache设为false


Devtools基本使用

在application.properties中配置spring.devtools.restart.enabled=false,此时restart类加载器还会初始化,但不会监视文件更新。

在SprintApplication.run之前调用System.setProperty(“spring.devtools.restart.enabled”, “false”);可以完全关闭重启支持。

1.导入依赖

<dependencies>
  <!-- 热部署jar包 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
  </dependency>
</dependencies>

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <!-- fork如果没有此配置devtools不会起作用,即应用不会restart -->
        <fork>true</fork>
		<!-- 支持静态文件热部署 -->
        <addResources>true</addResources>
      </configuration>
    </plugin>
  </plugins>
</build>

2.application配置

spring:
  devtools:
    restart:
      enabled: true #开启热部署
      exclude: src/main/java  #设置重启的目录
      additional-paths: WEB-INF/**  #WEB-INF下文件夹内容修改不重启

3.IDEA额外配置

①:选择设置File->Setting->Build,…->Compiler下,将右侧build project automatically勾上
开启IDEA自动编译功能
在这里插入图片描述

在这里插入图片描述


②:按下ctrl + shift + alt + /,选择Registry,勾上Compiler autoMake allow when app running

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未禾

您的支持是我最宝贵的财富!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值