精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

體驗Spring-Boot-Devtools熱部署,流暢且不失強大

開發(fā) 前端
一個高級開發(fā)工程師,第一次用SpringBoot,決定打印一個經(jīng)典的HelloWorld。由于他太激動了,結果打錯了一個字母,變成了HalloWorld。

[[342929]]

本文轉載自微信公眾號「小姐姐味道」,作者小姐姐養(yǎng)的狗 。轉載本文請聯(lián)系小姐姐味道公眾號。  

一個高級開發(fā)工程師,第一次用SpringBoot,決定打印一個經(jīng)典的HelloWorld。

由于他太激動了,結果打錯了一個字母,變成了HalloWorld。

哈嘍?多么土多么俗多么沒有檔次,就像是嘴里含了個檳郎,吐不出氣來,絕對需要進行改正。

結果,改成hello之后,高工發(fā)現(xiàn)需要重啟應用才能生效。整整等了十多秒,系統(tǒng)才磨磨蹭蹭的啟動起來。

有些東西,時間長了是好事,但對于這種代碼調(diào)試場景來說,就讓人無法忍受。

高工吐出嘴里的檳郎,心想,是時候開發(fā)一個加快調(diào)試速度的工具了。

這就是SBDT的由來。

spring-boot-devtools

SpringBoot,StringBuilder,StringBuffer,俗稱Java界的3個SB。尤其是SpringBoot,非常的好用,主要歸功于它的autoconfig,靠約定來規(guī)范開發(fā)。

但問題是,SpringBoot加載的Jar包太多、太大了,每次啟動都要花費很長時間。對于SpringBoot服務來說,spring-boot-devtools就像一陣及時雨,滋潤著瞪眼發(fā)呆盯著重啟屏幕的同學。

雖然這個東西已經(jīng)出來很長時間了,但我發(fā)現(xiàn)在現(xiàn)實項目中,大家用到的還是比較少。但它的使用非常簡單。

只需要在項目的pom文件中,加入下面的jar包即可獲取秒級的服務重載(熱部署)。

  1. <dependency> 
  2.     <groupId>org.springframework.boot</groupId> 
  3.     <artifactId>spring-boot-devtools</artifactId> 
  4.     <scope>runtime</scope> 
  5.     <optional>true</optional> 
  6. </dependency> 

 

由于starter文件中默認的值就是true,所以下面yml中的配置,并不是必須的。

  1. spring: 
  2.   devtools: 
  3.     restart: 
  4.       enabled: true 

我們來驗證一下。來的很快。

新建一個簡單的controller,輸出halloworld。

  1. @Controller 
  2. public class DemoController { 
  3.     @GetMapping("/test"
  4.     @ResponseBody 
  5.     public String test(){ 
  6.         return "halloworld"
  7.     } 

修改代碼,把hallo改成hello。控制臺中將開始滾動輸出日志,加載項目代碼。此時訪問瀏覽器,發(fā)現(xiàn)我們的改動生效了。

  1. # 日志顯示 
  2. Started MbyeApplication in 1.731 seconds (JVM running for 51.115) 

控制臺也輸出了本次restart的時間,只花了不到2秒鐘,可以說是飛快了。

為了在代碼修改后,能夠?qū)崟r的觸發(fā)編譯,你需要在IDEA中做如下配置。如果這個配置不生效,就需要手動點擊一下Build了(注意不是rebuild)。

為什么熱部署的重新加載能夠這么快呢?因為它的重新啟動并不是完整的重啟整個應用,而是只重啟我們的應用代碼。

通過配置META-INF/spring-devtools.properties文件,可以指定每次重新啟動都加載第三方jar包。不過這種場景比較少。當然,有include,舊有exclude,示例如下。

  1. restart.exclude.somejar=/somejar-[\\w-]+\.jar 
  2. restart.include.ajar=/ajar-[\\w-]+\.jar 

注意到一件有意思的事情。當我們使用IDEA啟動的時候,控制臺的輸出是這樣的。

  1. 2020-09-18 21:33:59.495  INFO 4635 --- [  restartedMain] c.g.javarunfast.mbye.MbyeApplication     : Starting MbyeApplication on LYCYs-MacBook-Pro.local with PID 4635 (/target/classes started by xjjdog in /Users/xjjdog/codes/javarunfast/mbye) 
  2. 2020-09-18 21:33:59.495  INFO 4635 --- [  restartedMain] c.g.javarunfast.mbye.MbyeApplication     : No active profile set, falling back to default profiles: default 
  3. 2020-09-18 21:34:00.355  INFO 4635 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! 
  4. 2020-09-18 21:34:00.355  INFO 4635 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Elasticsearch repositories in DEFAULT mode. 
  5. 2020-09-18 21:34:00.357  INFO 4635 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 1ms. Found 0 Elasticsearch repository interfaces. 
  6. 2020-09-18 21:34:00.362  INFO 4635 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! 
  7. 2020-09-18 21:34:00.362  INFO 4635 --- [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Reactive Elasticsearch repositories in DEFAULT mode. 

里面的啟動線程是restartedMain。但當我們使用java -jar *jar來啟動的時候,主進程并不是restartedMain,而是main。

這是因為,線上環(huán)境開啟devtools,是沒有意義的。

這句話暫時這么說,因為會打臉。

更多功能

要想了解devtools有什么功能,我們先來看一下它的源碼目錄結構。

filewatch和classpath就不必說了,通過監(jiān)聽文件的變化,即可實現(xiàn)熱啟動。它原理上是使用一個獨立的ClassLoader(具體是指RestartClassLoader),來完成加載后的替換。

學習一下這部分的代碼,可以對Java的類加載器有更好的理解。

LiveReload

接下來就是livereload功能。

LiveReload在做前端開發(fā)的時候,經(jīng)常會用到。

devtools也會在后臺開啟一個LiveReload Server,瀏覽器會與這個Server保持著一個長連接,當后端有前端資源變動的時候,將會通知瀏覽器進行刷新,實現(xiàn)熱部署。

下面是Chrome的Remote Live Reload插件地址。安裝即可擁有這個酷炫的功能。

  1. https://chrome.google.com/webstore/detail/remotelivereload/jlppknnillhjgiengoigajegdpieppei?hl=en-GB 

遠程部署

這個就有意思多了。我們上面說到,線上環(huán)境開啟devtools,是沒有意義的,現(xiàn)在來打臉。

你可能自己的機器性能比較低,讓代碼運行在遠端,本地只管代碼開發(fā)。這時候,就可以使用遠程熱部署。

要開啟這個功能,需要做的步驟有點多。

步驟一。

需要在pom.xml中對spring-boot-maven-plugin做如下的更改。

  1. <plugin> 
  2.     <groupId>org.springframework.boot</groupId> 
  3.     <artifactId>spring-boot-maven-plugin</artifactId> 
  4.     <configuration> 
  5.         <excludeDevtools>false</excludeDevtools> 
  6.     </configuration> 
  7. </plugin> 

 

 

步驟二。

在yml中設置一個服務端與調(diào)試端連接的密鑰。

  1. spring: 
  2.   devtools: 
  3.     remote: 
  4.       secret: test 

步驟三。

將SB服務打包成jar,然后啟動。

  1. mvn -Dmaven.test.skip=true -Pdev package 
  2.  
  3. java -jar -Xdebug  \ 
  4. -Xrunjdwp:server=y,transport=dt_socket,suspend=n  \ 
  5. mbye-0.0.1-SNAPSHOT.jar 

可以看到我們在啟動的時候加入了很多參數(shù),這就是開啟遠程被調(diào)戲的意思。

步驟四。

在本地IDEA中編輯一個Java文件,并在啟動變量里塞進我們的服務端地址(和應用地址一樣)。

  1. import org.springframework.boot.devtools.RemoteSpringApplication; 
  2.  
  3. /** 
  4.  * @date 2020/09/19 
  5.  */ 
  6. public class Remote { 
  7.     public static void main(String[] args) { 
  8.         RemoteSpringApplication.main(new String[]{"http://localhost:8080"}); 
  9.     } 

步驟五。

進行驗證。隨便編輯一個能看到效果的文件,然后點擊build。

下面是IDEA開發(fā)端的截圖。

下面是服務端截圖。可以看到服務已經(jīng)重新載入了,不過速度特別快。

  1. Listening for remote restart updates on /.~~spring-boot!~/restart 
  2. Started MbyeApplication in 1.961 seconds (JVM running for 249.452) 

訪問web頁面,發(fā)現(xiàn)代碼已經(jīng)上傳成功了。

其實,spring-boot-devtools,還不算是最強大的。因為它每次都會使用ClassLoader重新載入項目的class文件。如果你的項目文件特別多,那也是比較慢的。

有一個更牛的工具,叫做jrebel,那可真是開發(fā)的利器。更棒的是,它能用在任何Java項目上,而不僅僅限制于SpringBoot項目中。不過,它有點重,而且是收費的。下次我們介紹一下它,或者你已經(jīng)提前去體驗了 。

 

作者簡介:小姐姐味道 (xjjdog),一個不允許程序員走彎路的公眾號。聚焦基礎架構和Linux。十年架構,日百億流量,與你探討高并發(fā)世界,給你不一樣的味道。我的個人微信xjjdog0,歡迎添加好友,進一步交流。

 

責任編輯:武曉燕 來源: 小姐姐味道
相關推薦

2024-08-09 08:52:26

2021-11-02 16:44:40

部署DevtoolsJRebel

2021-12-31 13:40:43

Spring Boot熱部署Java

2025-08-15 07:39:11

2021-05-21 10:24:52

AngularDevTools擴展

2024-11-27 09:58:41

Spring模塊化管理方式

2025-04-08 02:22:22

SpringJackson注解

2025-04-30 08:39:33

SpringMVC接口

2022-03-07 09:00:00

HTTPS證書中間件

2025-04-29 07:44:26

配置校驗機制

2024-11-06 11:33:09

2020-12-15 10:46:29

事件監(jiān)聽器Spring Boot

2014-03-19 10:07:44

同洲飛看2機頂盒

2024-11-01 10:40:32

2025-02-12 08:57:43

Spring動態(tài)注冊組件

2025-11-04 02:00:00

2025-10-27 01:00:00

2025-02-07 10:52:00

2025-10-28 01:25:00

SQL查詢Spring查詢模式

2024-12-06 09:27:28

點贊
收藏

51CTO技術棧公眾號

欧美日韩成人综合| 久久先锋资源网| 欧美成人三级视频网站| 久久久久久久穴| 美脚恋feet久草欧美| 国产精品久久久久久久久果冻传媒 | 欧美日韩亚洲91| 亚洲国产一区二区在线| 日本美女一级片| 日韩 欧美一区二区三区| 欧美成年人视频网站| 国产一二三四五区| 亚洲五码在线| 欧美日韩极品在线观看一区| 国产片侵犯亲女视频播放| 国产视频在线看| 丁香亚洲综合激情啪啪综合| 国产精品久久久久久婷婷天堂| 久久97人妻无码一区二区三区| 成人一区而且| 精品久久免费看| 国产喷水theporn| 蜜桃麻豆影像在线观看| 亚洲欧美国产77777| 欧美精品一区二区视频| 成人精品在线播放| 蜜桃精品视频在线| 日本91av在线播放| 国产一级二级三级| 亚洲午夜精品一区 二区 三区| 亚洲片av在线| 国产制服丝袜在线| julia中文字幕一区二区99在线| 欧美日韩精品一区二区天天拍小说 | 中文字幕在线三区| 国产日产精品一区| 欧美一卡2卡3卡4卡无卡免费观看水多多| 国产女18毛片多18精品| 蜜臀a∨国产成人精品| 欧美在线视频播放| 日本中文字幕免费| 国内一区二区三区| 欧美成人免费在线观看| 男人的午夜天堂| 欧美日韩国产高清电影| 亚洲精品视频中文字幕| 亚洲成人av免费在线观看| 136国产福利精品导航网址应用| 7777精品伊人久久久大香线蕉 | 午夜日韩成人影院| 精品久久香蕉国产线看观看gif| 成人在线视频一区二区三区| av香蕉成人| 亚洲欧美另类久久久精品| 熟女视频一区二区三区| 国产人成网在线播放va免费| 日韩一区在线免费观看| 麻豆传媒网站在线观看| √天堂8在线网| 亚洲综合男人的天堂| 成人在线免费观看视频网站| 国产精品一区hongkong| 亚洲一区二区三区美女| 欧美一级片免费播放| zzzwww在线看片免费| 精品国产乱码久久久久久婷婷| 缅甸午夜性猛交xxxx| 欧美激情网站| 欧洲一区二区三区在线| 亚洲美女性囗交| 精品一区二区三区中文字幕视频| 日韩视频免费直播| 极品白嫩的小少妇| 日本中文字幕在线一区| 亚洲人在线视频| 欧美黄色高清视频| 综合一区在线| 午夜精品一区二区三区在线视频 | 麻豆传媒在线观看| 亚洲美女精品一区| 成人免费播放器| 亚洲综合在线电影| 欧美美女激情18p| 国产综合内射日韩久| 亚洲+变态+欧美+另类+精品| 在线观看欧美www| 国产人妻精品一区二区三区不卡| 欧美日韩四区| 国产成人福利网站| 国产又粗又猛又爽| 99精品欧美一区二区蜜桃免费| 欧美一区二区三区在线播放| 麻豆影视在线观看_| 亚洲无人区一区| 日本久久久久久久久久久久| 日韩在线精品强乱中文字幕| 日韩mv欧美mv国产网站| 国产精品久久久久aaaa樱花| www.欧美黄色| 日韩av中字| 日韩一区二区三区视频在线 | 6080亚洲理论片在线观看| 亚洲精品乱码久久久久久金桔影视| av手机在线播放| 欧美激情日韩| 国产精品老女人精品视频| 精品久久久中文字幕人妻| 久久久影院官网| 久久久无码中文字幕久...| 亚洲淫成人影院| 欧美精品一区二区三区四区| 色偷偷男人天堂| 亚洲日本视频| 亚洲www视频| 国产二区在线播放| 亚洲一区二区精品久久av| 国产真人无码作爱视频免费| 成人精品动漫一区二区三区| 日韩视频免费在线观看| 一二三区免费视频| 国产精品一区二区无线| 无码免费一区二区三区免费播放| 国产在线xxx| 欧美丰满一区二区免费视频| 日韩免费成人av| 天堂精品中文字幕在线| 国产一区再线| caoprom在线| 日韩美一区二区三区| 亚洲一区电影在线观看| 日韩电影在线免费观看| 欧美主播一区二区三区美女 久久精品人 | 99视频热这里只有精品免费| 日本天堂免费a| 国产精品777777在线播放| 色播久久人人爽人人爽人人片视av| 精品国产免费观看| 成人av网站免费| 日韩a∨精品日韩在线观看| 中文字幕一区二区三区日韩精品| 久久精彩免费视频| 一级做a爰片久久毛片16| 中文字幕免费不卡| 999在线免费视频| 精品国产视频| 国产精品日韩在线播放| 国产youjizz在线| 在线看一区二区| www..com.cn蕾丝视频在线观看免费版| 久久不射网站| 日本免费高清不卡| 国产精品.xx视频.xxtv| 中文字幕欧美精品日韩中文字幕| 中文天堂在线资源| 国产精品久久久久久久久免费樱桃| 在线免费观看视频黄| 日韩中字在线| 亚洲综合视频1区| 国产色婷婷在线| 日韩av一区在线观看| 欧美bbbbbbbbbbbb精品| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 天天干天天干天天干| 精品久久久久久久久久久| 无码人妻aⅴ一区二区三区| 先锋影音国产一区| 日韩一本精品| 国产成人免费av一区二区午夜| 欧美精品在线播放| 人妻少妇精品无码专区久久| 欧美网站在线观看| 久久午夜精品视频| 国产精品一级片| 国产深夜男女无套内射| 欧美另类69xxxxx| 91久久国产综合久久蜜月精品 | 国产精品99久久| eeuss一区二区三区| 蜜桃av.网站在线观看| 国产一区二区三区网站| 99热这里只有精品9| 亚洲成a天堂v人片| 波多野在线播放| 国产乱码精品1区2区3区| 国产免费黄色小视频| 日韩欧美精品一区| 国产日韩在线一区二区三区| 亚洲第一影院| 欧美成人一区在线| 韩国中文免费在线视频| 欧美一级黄色录像| 好吊色在线视频| 亚洲欧美视频一区| 亚洲第一香蕉网| 国产成人亚洲综合色影视| 国产性xxxx18免费观看视频| 五月久久久综合一区二区小说| 精品999在线观看| 少妇精品视频在线观看| 97精品一区二区三区| 午夜伦理在线| 日韩国产精品一区| 国产熟女精品视频| 欧美天堂在线观看| 精品亚洲永久免费| 中文字幕在线观看一区| 无码人妻精品一区二区三应用大全 | 人妻少妇精品无码专区久久| 欧美精品久久久久久久久老牛影院| 欧美特黄aaaaaa| 一区二区三区中文字幕精品精品 | 欧美日韩一二三四五区| 超碰在线国产97| 国产精品午夜春色av| 欧美 变态 另类 人妖| 国产成人亚洲精品狼色在线 | 成人亚洲精品久久久久软件| www午夜视频| 久色成人在线| 免费观看国产精品视频| 欧美成人中文| 国产一区一区三区| 日韩电影免费在线观看| 欧美成人免费在线| 欧美福利在线播放网址导航| 99久热re在线精品996热视频| 狠狠久久综合| 国产精品网红福利| 成人日韩在线观看| 欧美一区二区三区图| 福利网站在线观看| 欧美伦理91i| av中文字幕在线播放| 久久综合九色九九| 欧美激情办公室videoshd| 中文字幕免费精品一区| www.国产精品.com| 一区二区三区高清国产| 久久手机免费观看| 亚洲欧美国产日韩天堂区| 污污视频在线免费看| 亚洲成人av中文字幕| 亚洲a视频在线| 日韩精品一区二区三区四区视频 | 亚洲爱爱视频| 国产精品美腿一区在线看| 欧美日韩视频免费观看| 国产精品麻豆va在线播放| 欧美在线va视频| 国产精品视频自拍| 亚洲精品aaa| 91久久在线观看| 久久综合偷偷噜噜噜色| 99精彩视频| 成人动漫视频| 就去色蜜桃综合| 视频国产一区| 正在播放久久| 欧美日本不卡高清| 分分操这里只有精品| 亚洲深爱激情| 亚洲五月天综合| 国产一区二区三区香蕉| 涩视频在线观看| 2023国产一二三区日本精品2022| 欧美做受xxxxxⅹ性视频| 国产区在线观看成人精品| 97精品在线播放| 亚洲一区二区精品久久av| 久久久久久久久久久久久av| 欧美影视一区二区三区| 国产麻豆免费观看| 亚洲成色777777女色窝| 欧美黄色小说| 久久av红桃一区二区小说| av中文在线资源| 国产精品久久久久久av| 香蕉久久一区| 久久av免费一区| 999国产精品永久免费视频app| 欧美黄网在线观看| 亚洲免费综合| 日本在线观看视频一区| av一二三不卡影片| 国产馆在线观看| 亚洲成人综合在线| 正在播放木下凛凛xv99| 欧美成人a∨高清免费观看| 理论在线观看| 欧美成人免费播放| 成人免费看视频网站| 91免费在线视频网站| 亚州av一区| 99精品一区二区三区的区别| 亚洲永久在线| 亚洲女人在线观看| 2020国产精品久久精品美国| 国产精品国产精品88| 日韩欧美精品免费在线| 国产成人精品无码高潮| 亚洲欧美日韩精品| 亚洲综合影视| 国产视频观看一区| 一本久久青青| 国产 国语对白 露脸| 日韩中文字幕亚洲一区二区va在线 | 精品国产一区二区三区久久久蜜月| 丁香婷婷在线| 91国产精品视频在线| 高清一区二区中文字幕| 日本日本精品二区免费| 激情综合久久| www.亚洲自拍| 中文字幕精品一区二区精品绿巨人| 日韩欧美三级在线观看| 欧美一二三区在线| 激情小视频在线观看| 久久人人爽人人爽人人片av高请| 亚洲一区导航| 一区二区三区四区在线视频| 午夜一区在线| 精品视频站长推荐| 亚洲最大成人网4388xx| 国产色视频在线| 久久精品国产亚洲一区二区| 日韩欧美一区二区三区在线观看| 韩国一区二区三区美女美女秀| 综合久久精品| 亚洲911精品成人18网站| 综合色中文字幕| 国产精品欧美激情在线| 色老头一区二区三区在线观看| 婷婷六月国产精品久久不卡| 裸模一区二区三区免费| av不卡在线看| 久久人人爽人人爽人人片 | 国产精品成人久久久| 亚洲精品永久免费精品| 亚洲精品国产精品国产| 久久久久久艹| 亚洲影音一区| 在线免费看黄视频| 一本大道久久a久久精品综合| 天天av综合网| 青青a在线精品免费观看| 西瓜成人精品人成网站| 日韩激情免费视频| 久久一二三国产| 亚洲中文字幕无码爆乳av| 一区二区欧美激情| 9999精品| 日韩一区二区高清视频| 懂色av中文一区二区三区| 日本污视频在线观看| 亚洲精品电影在线| av有声小说一区二区三区| 日韩精品久久久| 老司机午夜精品| 日本一级二级视频| 欧美大胆一级视频| 麻豆免费版在线观看| 免费在线国产精品| 欧美aaaaa成人免费观看视频| 国产传媒视频在线| 日韩视频一区在线观看| 黑森林国产精品av| 欧美最大成人综合网| 久久精品国产**网站演员| www欧美com| 亚洲黄色有码视频| 日韩三级影视| 国产成人精品免费看在线播放| 成人午夜在线播放| 一级特黄免费视频| 久久黄色av网站| 狠狠一区二区三区| 好男人www社区| 亚洲精品一二三四区| 乱妇乱女熟妇熟女网站| 免费一区二区三区在线视频| 亚洲色图都市激情| 91免费版在线看| 91国产精品一区| 欧美性受xxx| 国产精品99久久久久久动医院| jjzz黄色片| 欧洲精品在线观看| 日日夜夜天天综合入口| 欧美日韩亚洲在线| 国产精品一区二区在线看| 色婷婷av国产精品| 久久精品国产精品| 免费成人高清在线视频theav| 久国产精品视频| 黑人欧美xxxx| 91香蕉在线观看| 亚洲欧美日韩精品久久久| 99久久久无码国产精品| 一区二区三区免费观看视频| 97热在线精品视频在线观看|