spring-loader 热部署
2015-09-09 22:18
525 查看
JDK1.5之后提供了java.lang.instrument.Instrumentation,即java agent机制能够实现类的redefinition和retransform。
redefinition对应Instrumentation.redefineClasses()能够实现类的热替换,但遗憾的是功能很有限。
?1 2 3 4 | 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. |
?
1 2 3 4 5 6 7 | Spring Loaded is a JVM agentforreloadingclassfile 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 inenumtypes. |
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | packagetest; importdemo.A; publicclassTestPreMain { // -javaagent:springloaded-1.2.0.RELEASE.jar -noverify publicstaticvoidmain(String[] args)throwsException { A a =newA(); while(true) { a.say(); Thread.sleep(3000); } } } |
?
1 | -javaagent:springloaded-1.2.0.RELEASE.jar -noverify |
?
1 | set JAVA_OPTS=-javaagent:springloaded-1.2.0.RELEASE.jar -noverify |
相关文章推荐
- Java中构造方法与重载
- HDOJ 4762 Cut the Cake(概率+Java)
- Java—double类型不以科学计数法表示
- springmvc上传临时文件目录配置
- think in java 学习笔记(一)方法重载
- Java.的包装类
- java job 资源
- hdu 1085 Holding Bin-Laden Captive!(Java)
- 设计模式笔记
- springmvc+spring4+hibernate的删除和更新方法无效,已经解决
- 专访黄勇:Java在未来的很长一段时间仍是主流
- JDK源代码研究 TreeSet TreeMap 红黑树算法实现
- java编程中Properties类的具体作用和使用!
- Java Date API demo
- <LeetCode(Java版)>String to Integer
- 学习java与思维导图
- Java参数按值传递和按引用传递
- java 实现倒计时的效果
- Android Studio(七):项目从Eclipse到Android Studio迁移
- hdu 1002 A + B Problem II(Java)