在開發中我們修改一個Java文件后想看到效果不得不重啟應用,這導致大量時間花費,我們希望不重啟應用的情況下,程序可以自動部署(熱部署)。有以下四種情況,如何能實現熱部署。
1、模版引擎
1)在Spring Boot中開發情況下禁用模板引擎的cache
2)頁面模板改變ctrl+F9可以重新編譯當前頁面並生效
2、Spring Loaded
Spring官方提供的熱部署程序,實現修改類文件的熱部署
下載Spring Loaded(項目地址https://github.com/spring-projects/spring-loaded)
添加運行時參數;
-javaagent:C:/springloaded-1.2.5.RELEASE.jar –noverify
3、JRebel
1)收費的一個熱部署軟件
2)安裝插件使用即可
4、Spring Boot Devtools(推薦)
1)引入依賴
1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-devtools</artifactId> 4 <optional>true</optional> 5 </dependency>
2)項目啟動時重新編譯(IDEA使用ctrl+F9)
測試devtools
a、新建SpringBoot Web項目,依賴如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.test</groupId> 8 <artifactId>test-springboot-devtools</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 12 <parent> 13 <groupId>org.springframework.boot</groupId> 14 <artifactId>spring-boot-starter-parent</artifactId> 15 <version>2.1.8.RELEASE</version> 16 </parent> 17 18 <properties> 19 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 20 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 21 <java.version>1.8</java.version> 22 </properties> 23 24 <dependencies> 25 <dependency> 26 <groupId>org.springframework.boot</groupId> 27 <artifactId>spring-boot-starter-web</artifactId> 28 </dependency> 29 30 <dependency> 31 <groupId>org.springframework.boot</groupId> 32 <artifactId>spring-boot-starter-thymeleaf</artifactId> 33 </dependency> 34 35 <dependency> 36 <groupId>org.springframework.boot</groupId> 37 <artifactId>spring-boot-devtools</artifactId> 38 <optional>true</optional> 39 </dependency> 40 41 <dependency> 42 <groupId>org.springframework.boot</groupId> 43 <artifactId>spring-boot-starter-test</artifactId> 44 <scope>test</scope> 45 </dependency> 46 47 </dependencies> 48 49 50 <!-- SpringBoot打包插件,可以將代碼打包成一個可執行的jar包 --> 51 <build> 52 <plugins> 53 <plugin> 54 <groupId>org.springframework.boot</groupId> 55 <artifactId>spring-boot-maven-plugin</artifactId> 56 </plugin> 57 </plugins> 58 </build> 59 </project>
b、編輯一個controller,如下:
1 @Controller 2 public class HelloController { 3 4 @RequestMapping("/hello") 5 public String hello(){ 6 return "hello"; 7 } 8 }
c、編譯一個頁面hello.html
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <h3>Hello World!!!</h3> 9 </body> 10 </html>
d、啟動項目,使用地址http://localhost:8080/hello,訪問界面

-
- 修改頁面內容,Hello World!!! --》World!!!,ctrl+F9重新編譯項目,查看顯示內容
- 修改controller映射路徑,/hello --》/abc,ctrl+F9重新編譯項目,查看顯示內容
