springboot 在idea中使用热部署

原创 2018年04月17日 21:07:01

springboot 在idea中使用热部署

       devtools:是spring boot的一个热部署工具,当修改了classpath下的文件(包括类文件、属性文件、页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快,如果发现这个启动比较慢,可以选择使用jrebel)
双类加载器机制:boot使用了两个类加载器来实现重启(restart)机制:base类加载器+restart类加载器。
       base类加载器:用于加载不会改变的jar(第三方依赖的jar)

      restart类加载器:用于加载我们正在开发的jar(整个项目里我们自己编写的类)。当应用重启后,原先的restart类加载器被丢掉、重新new一个restart类加载器来加载这些修改过的东西,而base类加载器却不需要动一下。

1.在pom.xml文件中加入以下代码

 <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional>
</dependency>
2.idea中File-》Settings-》Build,Execution,Deployment-》Compiler

勾选Build project automatically


3.按ctrl+alt+shift+/ 选择Registry 勾选


4. Chrome禁用缓存

  F12或者“Ctrl+Shift+I”,打开开发者工具,“Network” 选项卡下 选中打勾 “Disable Cache(while DevTools is open)”

不能使用分析:

(a)     对应的spring-boot版本是否正确;
(b)     是否加入spring-boot-maven-plugin,以及属性<fork>true</fork>
(c)      Eclipse Project 是否开启了Build Automatically
(d)     如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。


补充:

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

     2、如果想改变默认的设置,可以自己设置不重启的目录:spring.devtools.restart.exclude=static/**,public/**,这样的话,就只有这两个目录下的文件修改不会导致restart操作了。
     3、如果要在保留默认设置的基础上还要添加其他的排除目录:spring.devtools.restart.additional-exclude
     4、如果想要使得当非classpath下的文件发生变化时应用得以重启,使用:spring.devtools.restart.additional-paths,这样devtools就会将该目录列入了监听范围。


关闭自动重启

       设置 spring.devtools.restart.enabled 属性为false,可以关闭该特性。可以在application.properties中设置,也可以通过设置环境变量的方式。

System.setProperty("spring.devtools.restart.enabled","false");  
SpringApplication.run(MyApp.class, args); 


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35192224/article/details/79980761

springboot 在idea中实现热部署

SpringBoot的web项目,在每一次修改了java文件或者是resource的时候,都必须去重启一下项目,这样的话浪费了很多的时间,实现了热部署,在每一次作了修改之后,都会自动的重启 第一步:...
  • xusheng_Mr
  • xusheng_Mr
  • 2017-12-11 13:26:22
  • 3582

极其简单的 使用IDEA 中 实现springboot 热部署 (spring boot devtools版)

极其简单的 使用IDEA 中 实现springboot 热部署 (spring boot devtools版) 添加配置pom.xml配置第一步:添加springboot的配置文件 首先我先贴出我...
  • my__Sun_
  • my__Sun_
  • 2017-05-17 13:31:22
  • 6207

在IDEA中Spring boot配置热部署无效问题解决方式

只要在pom文件中添加下面代码段即可 &amp;lt;!-- 热部署 --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;...
  • qq_20989105
  • qq_20989105
  • 2018-04-04 10:10:22
  • 107

Idea中Springboot开启热部署方法

Springboot1.3后支持热部署,具体方法如下:1. 增加依赖 org.springframework.boot spring-boot-devt...
  • sunshinwong
  • sunshinwong
  • 2017-05-18 10:14:39
  • 1524

IDEA2017.3下设置Springboot热部署

1.Fiel-&amp;gt;settings-&amp;gt;Build,Execution,Deployment-&amp;gt;Compiler 勾选 Build project automat...
  • a1273022039
  • a1273022039
  • 2018-03-17 12:06:24
  • 109

IDEA中Spring boot配置热部署无效问题解决方式

该配置方式属于通过配置devtools实现热部署 只要在pom文件中添加下面代码段即可 dependency> groupId>org.springframework....
  • android_ztz
  • android_ztz
  • 2018-01-31 20:30:59
  • 938

Intellij IDEA SpringBoot热部署 使用Spring-boot-devTools无效解决办法

转载:http://blog.csdn.net/wjc475869/article/details/52442484相信大部分使用Intellij的同学都会遇到这个问题,即使项目使用了spring-b...
  • qq_26346457
  • qq_26346457
  • 2017-12-16 14:42:43
  • 865

springboot开启热部署之Idea&Gradle

一、引入starter//热部署 compile("org.springframework.boot:spring-boot-devtools")二、开启自动编译第一步windows:ctrl + a...
  • KingBoyWorld
  • KingBoyWorld
  • 2017-07-06 19:22:24
  • 2674

SpringBoot项目在IntelliJ IDEA中实现热部署

一、开启idea自动make功能  1、CTRL + SHIFT + A --> 查找make project automatically --> 选中  2、CTRL + SHI...
  • My_Chen_Suo_Zhang
  • My_Chen_Suo_Zhang
  • 2017-04-06 16:54:22
  • 10110

intellij+springboot+springloaded 实现热部署

依赖: dependencys目录下增加: org.springframework.boot spring-boot-starter-web project 节点下添...
  • nicholas2
  • nicholas2
  • 2015-02-15 23:35:32
  • 17061
收藏助手
不良信息举报
您举报文章:springboot 在idea中使用热部署
举报原因:
原因补充:

(最多只允许输入30个字)