前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用springloaded进行java应用热部署

使用springloaded进行java应用热部署

作者头像
pollyduan
发布2019-11-04 14:48:18
1K0
发布2019-11-04 14:48:18
举报

试了下不错,不像JRebel那样收费,这个开源的,感觉很好用。

首先下载springloaded.jar

https://github.com/spring-projects/spring-loaded

也可以使用maven拉取:

代码语言:javascript
复制
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>springloaded</artifactId>
  <version>1.2.7.RELEASE</version>
</dependency>

普通jdk应用

代码语言:javascript
复制
java -javaagent:/Users/pollyduan/springloaded-1.2.7.RELEASE.jar -noverify SomeJavaClass

只要修改class文件,立即生效,SomeJavaClass修改无效。

tomcat配置

关闭tomcat的reloadable

修改server.xml。

代码语言:javascript
复制
<Context reloadable="false"

修改启动配置增加代理

如果是纯tomcat中配置,修改启动脚本catalina.bat(linux中为catalina.sh):

代码语言:javascript
复制
#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文件。

代码语言:javascript
复制
<Context reloadable="false"

如果希望eclipse中所有的工程都默认为reloadable为false,那么如下配置:

代码语言:javascript
复制
在Servers视图(默认在下面的窗口中),双击你的服务器;
将"Server options"配置项中的"Modules auto reload by default"取消选中,关闭保存。

修改启动脚本

在eclipse中,第一次启动运行之后,修改“Run Configurations”,在启动脚本的"Arguments" 选项卡,在“VM arguments”文本框中增加:

代码语言:javascript
复制
-javaagent:/Users/pollyduan/springloaded-1.2.7.RELEASE.jar -noverify

使用修改后的启动脚本,重新启动,既可实现修改后自动加载了。

控制台不会显示任何信息。

非Spring项目的说明

可以使用热加载功能,但是会提示:

代码语言:javascript
复制
Reloading: JVMPlugin: warning: unable to clear BEANINFO_CACHE, cant find field

忽略即可。如果加入spring容器的依赖和配置,就不会出现了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先下载springloaded.jar
  • 普通jdk应用
  • tomcat配置
    • 关闭tomcat的reloadable
      • 修改启动配置增加代理
      • Eclipse
        • 修改server配置
          • 修改启动脚本
          • 非Spring项目的说明
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档