java 热布署 开源_使用spring-loaded开源项目,实现JAVA语言和web应用的热部署的简便教程...

本文主要向大家介绍了使用spring-loaded开源项目,实现JAVA语言和web应用的热部署的简便教程,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

JDK1.5之后提供了java.lang.instrument.Instrumentation,即java agent机制可以实现类的redefinition和retransform。

redefinition相应Instrumentation.redefineClasses()可以实现类的热替换。但遗憾的是功能非常有限。

The redefinition may change method bodies, the constant pool and attributes.

The redefinition must not add, remove or rename fields or methods, change the

signatures of methods, or change inheritance.  These restrictions maybe be

lifted in future versions.

近期遇到一个开源项目spring-loaded,看了下官方的介绍文档:发现它功能比JDK自带的强大多了。

Spring Loaded is a JVM agent for reloading class file changes whilst a JVM is running.

It transforms classes at loadtime to make them amenable to later reloading.

Unlike 'hot code replace' which only allows simple changes once a JVM is running

(e.g. changes to method bodies), Spring Loaded allows you to

add/modify/delete methods/fields/constructors.

The annotations on types/methods/fields/constructors

can also be modified and it is possible to add/remove/change values in enum types.

经过自己的尝试,发现使用spring-loaded项目。确实能够实现java应用的热部署。以下介绍下怎样将spring-loaded引入到项目中。

我们能够执行以下的这段代码,然后改动A.say()方法,看看在不重新启动JVM的情况下,能否够动态改变。

package test;

import demo.A;

public class TestPreMain

{

// -javaagent:springloaded-1.2.0.RELEASE.jar -noverify

public static void main(String[] args) throws Exception

{

A a = new A();

while (true)

{

a.say();

Thread.sleep(3000);

}

}

}

为了使用spring-loaded实现热部署。我们仅仅须要在启动JVM的时候。添加例如以下的启动參数就可以

-javaagent:springloaded-1.2.0.RELEASE.jar -noverify

假设是通过eclipse启动,那么能够在run confiuration中进行设置

接下来我们看下怎样在tomcat中使用spring-loaded实现war包的热部署。将下载的springloaded-1.2.0.RELEASE.jar放到%TOMCAT_HOME%/bin/文件夹下,然后改动该文件夹下的catalina.bat

set JAVA_OPTS=-javaagent:springloaded-1.2.0.RELEASE.jar -noverify

这样就完毕了spring-loaded的安装,可以检測tomcat下部署的webapp,在不重新启动tomcat的情况下。实现应用的热部署。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值