2012-12-18 533 views
8

我使用IntelliJ和Tomcat 6來運行Spring Java EE應用程序。我沒有部署編譯過的戰爭,而是選擇使用爆炸戰爭部署,因此可以選擇熱切換一些類和JSP。但是,除了「更新類」和「更新類和資源」,IntelliJ還允許用戶在更新操作中「重新部署」和「重新啓動服務器」。這兩種選擇有什麼區別?IntelliJ中的「Redeploy」和「Restart Server」有什麼區別?

如果我在我的類中對方法簽名進行更改,或者如果在SpringConfiguration.xml中進行更改,是否需要重新啓動服務器,還是需要重新部署?我注意到,我無法簡單地熱切換其功能簽名或與其關聯的註釋已被修改的類。

回答

12

重新啓動服務器不正是它說,然後重新啓動Tomcat服務器。您的戰爭將在服務器啓動時重建並部署。如果您在熱交換課程時遇到問題,這很有用。

Redeploy將重新部署整個.war(無需重新啓動服務器),而不是嘗試熱交換已更改的類和其他資源。

參見: http://www.jetbrains.com/idea/webhelp/updating-a-running-java-ee-application.html

在回答你的第二個問題,重新部署應該是足夠的。也就是說,它可能導致內存泄漏,並且通常只比完全重啓稍快。

3

更新資源。所有更改的資源(即所有類以外的應用程序組件)都將被更新。

更新類和資源。所有更改的資源都將更新;改變的類將被重新編譯。 在調試模式下,更新的類將被熱插拔。在運行模式下,IntelliJ IDEA將只更新輸出文件夾中已更改的類。這些類是否實際上將在正在運行的應用程序中重新加載,取決於正在使用的運行時的功能。

重新部署。該應用程序將被更新和重新部署。

重新啓動服務器。服務器將重新啓動。應用程序的更新版本將在服務器啓動時部署。 對於打包的工件,可用的選項有:

熱交換類。已更改的類將在運行時重新編譯並重新加載。請注意,該選項僅適用於調試模式。 重新部署。整個應用程序將被重建和重新部署。 重新啓動服務器。服務器將重新啓動。應用程序將在服務器啓動時重建並部署。

來源:http://www.jetbrains.com/idea/webhelp/run-debug-configuration-tomcat.html

相關問題