springboot熱部署未生效怎麼辦
springboot熱部署未生效怎麼辦
熱部署:當發現程式修改時自動啟動應用程式。
spring boot為開發者提供了一個名為spring-boot-devtools的模組來使Spring Boot應用支援熱部署,提高開發者的開發效率,無需手動重啟Spring Boot應用。
原理
使用了兩個ClassLoader,一個Classloader載入那些不會改變的類(第三方Jar包),另一個ClassLoader載入會更改的類,稱為restart ClassLoader,這樣在有程式碼更改的時候,原來的restart ClassLoader 被丟棄,重新建立一個restart ClassLoader,由於需要載入的類相比較少,所以實現了較快的重啟時間。
配置方式
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional><!-- optional配置為true -->
</dependency>
...
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.7.RELEASE</version>
</dependency>
</dependencies>
<configuration><fork>true</fork></configuration>
</plugin>
如何生效
假如用mvn spring-boot:run 方式啟動應用,修改完java檔案就會立即生效
為什麼熱部署明明配置正確還未生效
假如用debug 方式啟動應用,需要手動重新編譯整個專案,或者被修改的檔案
比如idea下點選選單 build > build XXX 或者選中檔案 build >recompile “${your java file}”
筆者環境
mac pro+idea2016
jdk1.8+maven3+spring4 + springboot1.5.7.RELEASE+springloaded1.2.7.RELEASE
PS 完整pom配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.XXX</groupId>
<artifactId>XX</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>bi</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<!-- jdbc driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
<!--print sql-->
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.5-FINAL</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional><!-- optional=true,依賴不會傳遞,該專案依賴devtools;之後依賴myboot專案的專案如果想要使用devtools,需要重新引入 -->
</dependency>
</dependencies>
<build>
<finalName>XX</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.7.RELEASE</version>
</dependency>
</dependencies>
<configuration><fork>true</fork></configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
相關文章
- Springboot在idea中使用devtools熱部署配置不生效的解決辦法Spring BootIdeadev熱部署
- springboot熱部署Spring Boot熱部署
- vue打包 element-ui不生效怎麼辦VueUI
- SpringBoot熱部署加持Spring Boot熱部署
- 一、SpringBoot熱部署Spring Boot熱部署
- SpringBoot專案熱部署Spring Boot熱部署
- springboot實現熱部署Spring Boot熱部署
- SpringBoot 實現熱部署Spring Boot熱部署
- win10 環境變數不生效怎麼辦 win10 環境變數沒生效怎麼解決Win10變數
- Springboot程式碼修改後,不需重新執行即可生效,使用Springloaded進行熱部署Spring Boot熱部署
- idea SpringBoot jar 熱部署IdeaSpring BootJAR熱部署
- SpringBoot實現熱部署兩種方式!Spring Boot熱部署
- win10配置完環境變數不生效怎麼辦 win10配置了環境變數後不生效怎麼解決Win10變數
- win10移動熱點未建立乙太網怎麼辦_win10移動熱點如何建立乙太網Win10
- 屏保設定不生效怎麼做?
- 未來系統擴充套件,報表怎麼辦?套件
- SpringBoot手動部署到Tomcat和自動化熱部署Spring BootTomcat熱部署
- qt樣式表未生效QT
- 前端debugger未生效前端
- MacBook Pro充電發熱怎麼辦?MacBook Pro充電發熱嚴重的解決辦法Mac
- 案例解析:springboot自動配置未生效問題定位(條件斷點)Spring Boot斷點
- 遠端辦公平臺未來的趨勢怎麼樣
- SpringBoot整合devtools實現熱部署除錯Spring Bootdev熱部署除錯
- win10更改完環境變數怎麼生效 windows10怎麼讓環境變數生效Win10變數Windows
- easyanticheat是什麼軟體 玩遊戲提示未安裝easyanticheat怎麼辦遊戲
- 操作熱點問答:醫療系統被攻擊了怎麼辦?
- win10未發現nvidia控制皮膚怎麼辦Win10
- win10診斷策略服務未執行怎麼辦Win10
- windows10系統修改JDK版本後配置環境變數不生效怎麼辦WindowsJDK變數
- 這論壇怎麼設定改了都不生效?
- 最新版本idea配置springboot熱部署IdeaSpring Boot熱部署
- springboot 配置熱啟動 不需重啟自動部署Spring Boot
- Idea中Springboot熱部署無效解決方法IdeaSpring Boot熱部署
- macbook很燙怎麼辦?如何有效地進行散熱呢?Mac
- win10系統智慧卡服務未啟動怎麼辦Win10
- Heroku 403 Forbidden Procfile 配置未生效ORB
- win10我們無法設定移動熱點怎麼辦 膝上型電腦開不了熱點怎麼解決Win10
- 手機上所部署的DigiCert證書過期怎麼辦