sprinbboot 热部署 造成类加载器 不一致问题

Posted javajetty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sprinbboot 热部署 造成类加载器 不一致问题相关的知识,希望对你有一定的参考价值。

这里只说devtools的方式,注意以下的热部署方式在IDEA是默认没有打开自动编译的,手动编译需要快捷键(Ctrl+Shift+F9),

自动编译的修改配置如下:(注意刷新不要太快,会有1-2秒延迟)

File-Settings-Compiler-Build Project automatically

二、spring-boot-devtools

在pom中直接引入依赖

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

设置以下两项(第一项如已设置直接设置第二项)

 

1) “File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,选中打勾 “Build project automatically” 。

 

2) 组合键:“Shift+Ctrl+Alt+/” ,选择 “Registry” ,选中打勾 “compiler.automake.allow.when.app.running” 。

 

三、application配置

在application.yml配置中加入

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

 

 

 

之后就可以实现改变代码不用重启了!

以上是关于sprinbboot 热部署 造成类加载器 不一致问题的主要内容,如果未能解决你的问题,请参考以下文章

springboot + devtools(热部署)

第十七章 springboot + devtools(热部署)

Java 热加载

Springboot 热部署

从Java的类加载机制谈起:聊聊Java中如何实现热部署(热加载)

从Java的类加载机制谈起:聊聊Java中如何实现热部署(热加载)