使用springloaded進行java應用熱部署
試了下不錯,不像JRebel那樣收費,這個開源的,感覺很好用。
首先下載springloaded.jar
https://github.com/spring-projects/spring-loaded
也可以使用maven拉取:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.7.RELEASE</version>
</dependency>
普通jdk應用
java -javaagent:/Users/pollyduan/springloaded-1.2.7.RELEASE.jar -noverify SomeJavaClass
只要修改class檔案,立即生效,SomeJavaClass修改無效。
tomcat配置
關閉tomcat的reloadable
修改server.xml。
<Context reloadable="false"
如果希望eclipse中所有的工程都預設為reloadable為false,那麼如下配置:
在Servers檢視(預設在下面的視窗中),雙擊你的伺服器;
將"Server options"配置項中的"Modules auto reload by default"取消選中,關閉儲存。
修改啟動配置增加代理
如果是純tomcat中配置,修改啟動指令碼catalina.bat(linux中為catalina.sh):
#windows
#set JAVA_OPTS=-javaagent:/Users/pollyduan/springloaded-1.2.7.RELEASE.jar -noverify
#linux
export JAVA_OPTS="-javaagent:/Users/pollyduan/springloaded-1.2.7.RELEASE.jar -noverify"
只要修改class檔案,立即生效。
Eclipse
修改server配置
修改eclipse的Servers模組中的server.xml檔案。
<Context reloadable="false"
修改啟動指令碼
在eclipse中,第一次啟動執行之後,修改“Run Configurations”,在啟動指令碼的”Arguments” 選項卡,在“VM arguments”文字框中增加:
-javaagent:/Users/pollyduan/springloaded-1.2.7.RELEASE.jar -noverify
使用修改後的啟動指令碼,重新啟動,既可實現修改後自動載入了。
控制檯不會顯示任何資訊。
非Spring專案的說明
可以使用熱載入功能,但是會提示:
Reloading: JVMPlugin: warning: unable to clear BEANINFO_CACHE, cant find field
忽略即可。如果加入spring容器的依賴和配置,就不會出現了。
相關文章
- Spring Boot學習總結(4)——使用Springloaded進行熱部署Spring Boot熱部署
- Springboot程式碼修改後,不需重新執行即可生效,使用Springloaded進行熱部署Spring Boot熱部署
- IntelliJ IDEA+springloaded熱部署IntelliJIdeaSpring熱部署
- springloaded熱載入Spring
- 使用火焰圖進行Java應用效能分析Java
- 使用spring-loaded實現應用熱部署Spring熱部署
- 使用Java後端對Angular應用進行Docker化 -BhargavJava後端AngularDocker
- 使用VisualVM進行Java應用的效能測量LVMJava
- 基於PostgreSQL進行Java應用開發SQLJava
- 使用 Java 進行移動應用開發的 8 個理由 - VikrantJava
- 如何使用Java串列埠進行資料通訊及應用案例Java串列埠
- 深入探索 Java 熱部署Java熱部署
- Java 熱部署深入探索Java熱部署
- 使用 Docker 部署 Node 應用Docker
- 如何使用Nginx對Artifactory進行http應用NginxHTTP
- Eclipse/tomcat 如何實現應用熱部署和熱啟動EclipseTomcat熱部署
- Java應用構建並部署ECSJava
- 如何使用 docker 部署前端應用Docker前端
- 學用Java Web Start 部署應用程式 (轉)JavaWeb
- 使用Java 9 Flow進行響應式程式設計Java程式設計
- 使用 nuxi generate 進行預渲染和部署UX
- Java熱部署外掛JRebelJava熱部署
- 怎樣使用AJAX進行應用程式開發(轉)
- 使用dockerfile部署springboot應用DockerSpring Boot
- 使用uwsgi和Nginx部署flask應用NginxFlask
- 應用反射進行開發反射
- Java應用伺服器之tomcat部署Java伺服器Tomcat
- 學習在雲上部署Java應用程式Java
- 使用 Gradle 對應用進行個性化定製Gradle
- 使用 WebSphere CloudBurst 進行應用程式環境遷移(一)WebCloud
- 使用 WebSphere CloudBurst 進行應用程式環境遷移(二)WebCloud
- 使用應用程式(Java/Python)訪問MaxCompute Lightning進行資料開發JavaPython
- 在生產環境使用Docker部署應用Docker
- 使用Glue4Net部署.NET應用
- 在 Ubuntu 上使用 Nginx 部署 Flask 應用UbuntuNginxFlask
- 分享:使用 Capistrano —— Rails應用快速部署工具APIAI
- nginx使用熱部署新增新模組Nginx熱部署
- 使用Docker容器化部署實踐之Django應用部署(一)DockerDjango