标签:IntelliJ -- Spring 重启 boot idea spring ClassLoader
一、spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动部署新代码。
二、原理
使用了两个ClassLoader,一个ClassLoader用来加载那些不会变的类(如:第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改时,原来的restart ClassLoader被丢弃,重新创建一个restart ClassLoader。如此一来,由于需要加载的类比较少,所以实现了较快的重启。
三、发生时机
devtools会监听classpath下的文件变动,并会立即重启应用
一、开启idea自动make功能
1、CTRL + SHIFT + A --> 查找 make project automatically --> 选中
2、CTRL + SHIFT + A --> 查找 Registry --> 找到并勾选 compiler.automake.allow.when.app.running
重启idea 重启idea 重启idea 重启idea 重启idea 重启idea
二、使用spring-boot-1.3开始有的热部署功能
1、加maven依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
2、开启热部署
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build>
三、Chrome禁用缓存
F12(或Ctrl+Shift+J或Ctrl+Shift+I)--> NetWork --> Disable Cache(while DevTools is open)
注意:
1、如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。
2、这种热加载比较全面,资源文件、代码的修改都可以监听到,但有些情况下也会有问题
标签:IntelliJ,--,Spring,重启,boot,idea,spring,ClassLoader 来源: https://www.cnblogs.com/GotoJava/p/13531531.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。