springboot热部署

一、.使用devtools工具包(每次需要重新部署)

1、添加maven依赖

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

2、在application.yml中配置一下devtools

spring:
  devtools:
    restart:
      enabled: true  #设置开启热部署
      additional-paths: src/main/java #重启目录
      exclude: WEB-INF/**
  freemarker:
    cache: false    #页面不加载缓存,修改即时生效

3、修改idea的配置

1、File–>Settings–>Compiler,打开Compiler,勾选Build Project automatically

springboot热部署_第1张图片

2、ctrl + shift + alt + /,出现如下界面
springboot热部署_第2张图片

3、,选择Registry进入如下界面,单击页面选项,输入compiler.automake,勾选 Compiler autoMake allow when app running,至此配置完成。
springboot热部署_第3张图片

ps:
1、devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现),实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的。
2、配置了true后在修改java文件后也就支持了热启动,不过这种方式是属于项目重启(速度比较快的项目重启),会清空session中的值,也就是如果有用户登陆的话,项目重启后需要重新登陆。
3、默认情况下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public这些文件夹下的文件修改不会使应用重启,但是会重新加载(devtools内嵌了一个LiveReload server,当资源发生改变时,浏览器刷新)。

2、使用springloaded配置pom.xml文件

1、添加maven依赖

<build>
 <plugins>
     <plugin>
      <dependencies>
          <!-- spring热部署 -->
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>springloaded</artifactId>
              <version>1.2.6.RELEASE</version>
          </dependency>
      </dependencies>
    </plugin>
  </plugins>
</build>  

注意:maven依赖必须添加在 下面的的里面

2、打开idea终端,运行mvn spring-boot:run

springboot热部署_第4张图片

3、关闭项目,ctrl+c,然后输入y

springboot热部署_第5张图片

你可能感兴趣的:(Java进阶,java,spring,maven)