最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實現(xiàn)熱部署的方式總結(jié)

 更新時間:2023年06月29日 10:07:19   作者:低調(diào)的黑客  
所謂熱部署,就是在應(yīng)用正在運行的時候升級軟件,卻不需要重新啟動應(yīng)用,對于Java來說,熱部署就是在運行時更新Java類文件,本文將深入探討SpringBoot有哪些方式可以實現(xiàn)熱部署,感興趣的朋友可以小編一探討學(xué)習(xí)

一、什么是熱部署?

釋義

所謂熱部署,就是在應(yīng)用正在運行的時候升級軟件,卻不需要重新啟動應(yīng)用。

對于Java應(yīng)用程序來說,熱部署就是在運行時更新Java類文件。在基于Java的應(yīng)用服務(wù)器實現(xiàn)熱部署的過程中,類裝入器扮演著重要的角色。大多數(shù)基于Java的應(yīng)用服務(wù)器,包括EJB服務(wù)器和Servlet容器,都支持熱部署。類裝入器不能重新裝入一個已經(jīng)裝入的類,但只要使用一個新的類裝入器實例,就可以將類再次裝入一個正在運行的應(yīng)用程序。

Tomcat的熱部署(以后就不用重啟了)

沒有熱部署和有熱部署的開發(fā)效率是天差地別的。這個問題還受很多第三方軟件包(Struts,Spring,Hibernate)的限制。本來可以熱部署,加入了第三方的包就不可以了。所以,先說明詳細(xì)的軟件環(huán)境,和程序配置是非常必要的。

虛擬機:java version “1.5.0_06”
Servlet Engine:Apache Tomcat/5.0.27
Eclipse:3.0.1
Myeclipse:3.8.3

應(yīng)用程序情況:純正的servlet+jsp+javabean,數(shù)據(jù)庫連接使用JDBC-ODBC橋連接Access數(shù)據(jù)庫。沒有使用任何第三方軟件包,沒有使用Struts,Spring,Hibernate。\WebRoot\WEB-INF\lib下是空的。

配置方法:

ie登陸http://Tomcat所在的服務(wù)器IP:8080/ -> 點超連接“Tomcat Administration”-> 輸入用戶名密碼登陸 ->在左側(cè)的功能樹中 -> Tomcat Server -> Service(Catalina) -> Host(localhost) -> Context(/要修改的web項目) ->右側(cè)新出現(xiàn)的頁面中 ->Reloadable設(shè)置為true -> Save按鈕 -> Commit Changes。

然后Tomcat日志顯示:

  • debugging – changes saved to conf/server.xml
  • Removing web application at context path /test
  • Processing Context configuration file URL file:D:\Program Files\Tomcat 5.0\conf\Catalina\localhost\test.xml
  • Removing web application at context path /admin
  • unregistering logger Catalina:type=Logger,path=/admin,host=localhost
  • Processing Context configuration file URL file:D:\Program Files\Tomcat 5.0\conf\Catalina\localhost\admin.xml
  • Initializing, config=‘org.apache.struts.util.LocalStrings’, returnNull=true
  • Initializing, config=‘org.apache.struts.action.ActionResources’, returnNull=true
  • Initializing, config=‘org.apache.webapp.admin.ApplicationResources’, returnNull=true
  • Removing web application at context path /webdav
  • Processing Context configuration file URL file:D:\Program Files\Tomcat 5.0\conf\Catalina\localhost\webdav.xml
  • Removing web application at context path /test
  • Processing Context configuration file URL file:D:\Program Files\Tomcat 5.0\conf\Catalina\localhost\test.xml
    ……
    這樣,設(shè)置就生效了。

開發(fā)時,修改.java文件后,調(diào)用這個類時日志提示:

Reloading this Context has started
這是正在重新加載修改后的.class文件。
如果沒有進(jìn)行這個設(shè)置,修改.java文件后,不拋出異常。系統(tǒng)使用沒有修改的.java文件繼續(xù)運行。
不同版本的Tomcat的配置方法是不同的。這里使用的是5.0.27
j2ee開發(fā)插件(這里使用Myeclipse),也可能導(dǎo)致熱部署失效。因為插件必須要把編譯好的.class文件從工作空間復(fù)制到Tomcat\webapps下的項目里。才能使Tomcat得到需要熱部署的文件。
注意:如果項目中加入了Struts,Hibernate,Spring之類的第三方軟件,可能導(dǎo)致熱部署失效。

二、實現(xiàn)熱部署方式

1.spring-boot-devtools

第一種方式是通過Springboot提供的開發(fā)者工具spring-boot-devtools來實現(xiàn)。
首先在pom.xml引用其依賴:

<!--快重啟-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional> <!-- 可選 -->
        </dependency>

然后在Settings→Build→Compiler中將Build project automatically勾選上,最后按ctrl+shift+alt+/ 選擇registy,將compiler.automake.allow.when.app.running勾選。
如上,這樣就可以實現(xiàn)熱部署了。
但實際上,org.springframework.boot所實現(xiàn)的功能是快速啟動,加上自動編譯就能實現(xiàn)所謂的”熱部署“了。
Build project automatically就代表著自動編譯,但這項設(shè)定只在debug模式生效,所以要通過org.springframework.boot使其在普通運行模式也能自動編譯。

注意:上面說Build project automatically在debug模式也能生效,但是經(jīng)過我的測試,并不行,所以還是老老實實勾選compiler.automake.allow.when.app.running吧。另外,對于某些idea沒有這個選項的,設(shè)置好其他的之后,ctrl+f9也是可以的。

2.idea的熱部署功能

實際上idea已經(jīng)帶有一個熱部署的功能了,如圖:

如此設(shè)定之后,按道理還是設(shè)置Build project automatically和org.springframework.boot之后,就能實現(xiàn)熱部署了

3.Jrebel

Jrebel是一款熱部署插件,鑒于上面兩個方法已經(jīng)能完美實現(xiàn)熱部署了,所以我認(rèn)為沒什么必要再去研究它,所以在這里只是了解一下還有這種方式就行了。
有需要的,可以去此處學(xué)習(xí)→IDEA JRebel 插件熱部署(史上最全)
http://www.iocoder.cn/Fight/IDEA-JRebel-plug-in-hot-deployment/?self

到此這篇關(guān)于SpringBoot實現(xiàn)熱部署的方法總結(jié)的文章就介紹到這了,更多相關(guān)SpringBoot 熱部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 全網(wǎng)最精細(xì)詳解二叉樹,2萬字帶你進(jìn)入算法領(lǐng)域

    全網(wǎng)最精細(xì)詳解二叉樹,2萬字帶你進(jìn)入算法領(lǐng)域

    大家好,我是哪吒,一個熱愛編碼的Java工程師,本著"欲速則不達(dá),欲達(dá)則欲速"的學(xué)習(xí)態(tài)度,在程序猿這條不歸路上不斷成長,所謂成長,不過是用時間慢慢擦亮你的眼睛,少時看重的,年長后卻視若鴻毛,少時看輕的,年長后卻視若泰山,成長之路,亦是漸漸放下執(zhí)念,內(nèi)心歸于平靜的旅程
    2021-08-08
  • Java項目中如何引入Hutool工具類并正確使用它

    Java項目中如何引入Hutool工具類并正確使用它

    Hutool是一個小而全的Java工具類庫,通過靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,使Java擁有函數(shù)式語言般的優(yōu)雅,這篇文章主要給大家介紹了關(guān)于Java項目中如何引入Hutool工具類并正確使用它的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Java 基礎(chǔ)面試真題:String 為什么是不可變的?

    Java 基礎(chǔ)面試真題:String 為什么是不可變的?

    本文主要介紹了String、StringBuffer和StringBuilder的區(qū)別,以及String不可變的原因,String不可變的原因是其內(nèi)部使用final修飾的char數(shù)組保存字符串,同時String類沒有提供修改字符串的方法,在Java9之后,String的底層實現(xiàn)由char[]改成了byte[],這是為了節(jié)省內(nèi)存空間
    2025-01-01
  • 將Java程序的輸出結(jié)果寫到txt文件中的方法

    將Java程序的輸出結(jié)果寫到txt文件中的方法

    今天小編就為大家分享一篇將Java程序的輸出結(jié)果寫到txt文件中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Java 使用json-lib處理JSON詳解及實例代碼

    Java 使用json-lib處理JSON詳解及實例代碼

    這篇文章主要介紹了Java 使用json-lib處理JSON詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Spring多線程的使用以及問題詳解

    Spring多線程的使用以及問題詳解

    在我們開發(fā)系統(tǒng)過程中,經(jīng)常會處理一些費時間的任務(wù)(如:向數(shù)據(jù)庫中插入大量數(shù)據(jù)),這個時候就就需要使用多線程,下面這篇文章主要給大家介紹了關(guān)于Spring多線程的使用以及問題的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Java LinkedList集合功能實例解析

    Java LinkedList集合功能實例解析

    這篇文章主要介紹了Java LinkedList集合功能實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Springboot非分布式定時任務(wù)實現(xiàn)代碼

    Springboot非分布式定時任務(wù)實現(xiàn)代碼

    這篇文章主要介紹了Springboot非分布式定時任務(wù)實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • js-tab選項卡

    js-tab選項卡

    本文主要介紹了js-tab選項卡的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 淺談@RequestParam 參數(shù)是否必須傳的問題

    淺談@RequestParam 參數(shù)是否必須傳的問題

    這篇文章主要介紹了淺談@RequestParam 參數(shù)是否必須傳的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評論

沅陵县| 井研县| 谢通门县| 台东市| 海丰县| 赤水市| 太仆寺旗| 顺昌县| 安阳县| 友谊县| 滦南县| 松江区| 渭源县| 安顺市| 当阳市| 婺源县| 杭锦后旗| 咸阳市| 隆安县| 吉林省| 米林县| 广南县| 大悟县| 梨树县| 宣威市| 珠海市| 航空| 宜黄县| 宜都市| 杭锦后旗| 丰都县| 贺州市| 鄢陵县| 嫩江县| 从化市| 错那县| 南靖县| 达尔| 牙克石市| 东平县| 宁国市|