日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot实现热部署

發布時間:2025/3/21 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot实现热部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

在Spring Boot實現代碼熱部署是一件很簡單的事情,代碼的修改可以自動部署并重新熱啟動項目。

引用devtools依賴


<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency>

這樣,當修改一個java類時就會熱更新。

?

自定義配置熱部署


以下配置用于自定義配置熱部署,可以不設置。

# 熱部署開關,false即不啟用熱部署 spring.devtools.restart.enabled: true# 指定熱部署的目錄 #spring.devtools.restart.additional-paths: src/main/java# 指定目錄不更新 spring.devtools.restart.exclude: test/**

?

Intellij Idea修改


如果是idea,需要改以下兩個地方:

1、勾上自動編譯或者手動重新編譯

File > Settings > Compiler-Build Project automatically

2、注冊

ctrl + shift + alt + / > Registry > 勾選Compiler autoMake allow when app running

?

注意事項


1、生產環境devtools將被禁用,如java -jar方式或者自定義的類加載器等都會識別為生產環境。

2、打包應用默認不會包含devtools,除非你禁用SpringBoot Maven插件的 excludeDevtools屬性。

3、Thymeleaf無需配置 spring.thymeleaf.cache:false,devtools默認會自動設置,參考完整屬性。

https://github.com/spring-projects/spring-boot/blob/v1.5.7.RELEASE/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/env/DevToolsPropertyDefaultsPostProcessor.java

下面是devtools自動配置的部分源碼:

@Order(Ordered.LOWEST_PRECEDENCE) public class DevToolsPropertyDefaultsPostProcessor implements EnvironmentPostProcessor {private static final Map<String, Object> PROPERTIES;static {Map<String, Object> properties = new HashMap<String, Object>();properties.put("spring.thymeleaf.cache", "false");properties.put("spring.freemarker.cache", "false");properties.put("spring.groovy.template.cache", "false");properties.put("spring.mustache.cache", "false");properties.put("server.session.persistent", "true");properties.put("spring.h2.console.enabled", "true");properties.put("spring.resources.cache-period", "0");properties.put("spring.resources.chain.cache", "false");properties.put("spring.template.provider.cache", "false");properties.put("spring.mvc.log-resolved-exception", "true");properties.put("server.jsp-servlet.init-parameters.development", "true");PROPERTIES = Collections.unmodifiableMap(properties);}

4、devtools會在windows資源管理器占用java進程,在開發工具里面殺不掉,只能手動kill掉,不然重啟會造成端口重復綁定報錯。

?

關于boot-devtools更多詳細用法,參考官方文檔。

https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html

總結

以上是生活随笔為你收集整理的Spring Boot实现热部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。