• Springboot热部署,使用spring-boot-devtools、springloaded两种方式进行热部署


    1、在项目的开发阶段,经常需要对代码进行反复修改,这样就会导致SpringBoot运行容器反复启动。为了解决这种频繁重启问题,SpringBoot提供了自动加载配置的依赖库,以实现代码的动态加载。

      在自己要经常修改的项目模块写上下面的依赖配置,保存,刷新update项目,然后修改自己的项目,可以看到后台就已经重新部署了,DevTools 在部署项目时使用的是重新部署的方式。

    1 <!-- DevTools 的坐标,热部署 -->
    2 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
    3 <dependency>
    4     <groupId>org.springframework.boot</groupId>
    5     <artifactId>spring-boot-devtools</artifactId>
    6     <version>2.2.10.RELEASE</version>
    7 </dependency>

      项目中配置了以上坐标之后,每当用户修改项目中程序类的时候都会由SpringBoot自动加载更新后的程序代码,同时也可以在项目名称上看到这样得标记了“[devtools]”。

    2、除了使用devtools的方式,还可以使用下面的springloaded的方式进行热部署的,SpringLoader 在部署项目时使用的是热部署的方式。

    1 <!-- https://mvnrepository.com/artifact/org.springframework/springloaded -->
    2 <dependency>
    3     <groupId>org.springframework</groupId>
    4     <artifactId>springloaded</artifactId>
    5     <version>1.2.8.RELEASE</version>
    6 </dependency>

    需要注意得是这里两个坐标依赖得方式,我说直接放到dependencies标签里面得哦,如下所示:

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      3          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
      4     <modelVersion>4.0.0</modelVersion>
      5     <parent>
      6         <groupId>org.springframework.boot</groupId>
      7         <artifactId>spring-boot-starter-parent</artifactId>
      8         <version>2.2.6.RELEASE</version>
      9         <relativePath/> <!-- lookup parent from repository -->
     10     </parent>
     11     <groupId>com.bie</groupId>
     12     <artifactId>springboot-hello</artifactId>
     13     <version>0.0.1-SNAPSHOT</version>
     14     <name>springboot-hello</name>
     15     <description>Demo project for Spring Boot</description>
     16 
     17     <properties>
     18         <java.version>1.8</java.version>
     19     </properties>
     20 
     21     <dependencies>
     22         <dependency>
     23             <groupId>org.springframework.boot</groupId>
     24             <artifactId>spring-boot-starter-web</artifactId>
     25         </dependency>
     26         <!-- 添加junit环境的jar包 -->
     27         <dependency>
     28             <groupId>org.springframework.boot</groupId>
     29             <artifactId>spring-boot-starter-test</artifactId>
     30             <scope>test</scope>
     31             <!--<exclusions>
     32                 <exclusion>
     33                     <groupId>org.junit.vintage</groupId>
     34                     <artifactId>junit-vintage-engine</artifactId>
     35                 </exclusion>
     36             </exclusions>-->
     37         </dependency>
     38         <!-- thymeleaf的启动器 -->
     39         <dependency>
     40             <groupId>org.springframework.boot</groupId>
     41             <artifactId>spring-boot-starter-thymeleaf</artifactId>
     42         </dependency>
     43         <!-- mybatis的启动器 -->
     44         <dependency>
     45             <groupId>org.mybatis.spring.boot</groupId>
     46             <artifactId>mybatis-spring-boot-starter</artifactId>
     47             <version>2.1.1</version>
     48         </dependency>
     49         <!-- mysql数据库驱动的依赖包 -->
     50         <dependency>
     51             <groupId>mysql</groupId>
     52             <artifactId>mysql-connector-java</artifactId>
     53         </dependency>
     54         <!-- druid数据库连接池 -->
     55         <dependency>
     56             <groupId>com.alibaba</groupId>
     57             <artifactId>druid</artifactId>
     58             <version>1.1.10</version>
     59         </dependency>
     60         <dependency>
     61             <groupId>junit</groupId>
     62             <artifactId>junit</artifactId>
     63             <scope>test</scope>
     64         </dependency>
     65         <!-- DevTools 的坐标,热部署 -->
     66         <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
     67         <!-- <dependency>
     68             <groupId>org.springframework.boot</groupId>
     69             <artifactId>spring-boot-devtools</artifactId>
     70             <version>2.2.10.RELEASE</version>
     71         </dependency> -->
     72         
     73         <!-- https://mvnrepository.com/artifact/org.springframework/springloaded -->
     74         <dependency>
     75             <groupId>org.springframework</groupId>
     76             <artifactId>springloaded</artifactId>
     77             <version>1.2.8.RELEASE</version>
     78         </dependency>
     79     </dependencies>
     80 
     81     <build>
     82         <plugins>
     83             <plugin>
     84                 <groupId>org.springframework.boot</groupId>
     85                 <artifactId>spring-boot-maven-plugin</artifactId>
     86             </plugin>
     87         </plugins>
     88         <!-- 此配置可以解决,如果将*.mapper.xml配置文件放入到src/main/java,无法加载mybatis映射文件的问题 -->
     89         <!--<resources>
     90             <resource>
     91                 <directory>src/main/java</directory>
     92                 <includes>
     93                     <include>**/*.xml</include>
     94                 </includes>
     95             </resource>
     96         </resources>-->
     97     </build>
     98 
     99 
    100 </project>
  • 相关阅读:
    HTML标签和属性三
    HTML标签和属性二
    HTML标签和属性一
    小程序相关面试题
    Vue路由的hash模式与history模式的区别?
    android中VideoView播放sd卡上面的视频
    Android中app开机自启动的开发
    java中byte,byte[]和int之间的转换
    Android多activity启动两种方式浅谈
    Android开发用到的几种常用设计模式浅谈(一):组合模式
  • 原文地址:https://www.cnblogs.com/biehongli/p/13759335.html
Copyright © 2020-2023  润新知