精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

加速Java應(yīng)用開發(fā)2—加速項(xiàng)目調(diào)試啟動(dòng)速度

開發(fā) 后端
本文介紹關(guān)于熱部署/熱替換。之前也有很多人介紹過這些知識(shí),不過比較分散,我寫此篇的目的是聚合它們。本文以HotSpot虛擬機(jī)為例。

上一篇Spring/Hibernate提升速度的文章《加速spring/hibernate應(yīng)用調(diào)試時(shí)啟動(dòng)速度》,主要是通過一些技巧來提升啟動(dòng)速度,還是做不到如類的熱部署/熱替換。因此再寫一篇關(guān)于熱部署/熱替換的文章。之前也有很多人介紹過這些知識(shí),不過比較分散,我寫此篇的目的是聚合它們。本文以HotSpot虛擬機(jī)為例。

首先讓我們來看兩個(gè)概念:熱部署、熱替換

熱部署

即在容器運(yùn)行過程中,重新加載類或重新加載整個(gè)項(xiàng)目。常見的解決方案就是使用自定義ClassLoader;

部分加載的示例:如JSP、Play框架;

重新加載整個(gè)項(xiàng)目的示例:如Tomcat、Jetty;默認(rèn)都是定期檢測(cè)class文件是否有修改,如果有,先卸載當(dāng)前容器,再重新加載整個(gè)項(xiàng)目(reload)。

這種情況缺點(diǎn)很明顯:只能重新裝載整個(gè)類/整個(gè)項(xiàng)目,不能只替換類中的部分。

JSP熱部署的介紹:

http://www.linuxidc.com/Linux/2013-05/83816.htm

Tomcat熱部署的介紹:

http://www.94it.cn/a/jingxuanboke/2013/0501/4578.html

Play!框架:

http://mingj.iteye.com/blog/307238

熱替換

熱替換相對(duì)于之前的熱部署的優(yōu)勢(shì)就是可以替換如方法體、增刪方法/字段等類內(nèi)部局部替換,而不是整個(gè)類。常見的實(shí)現(xiàn)方式:HotSpot虛擬機(jī)的HotSwap、HotSwap補(bǔ)丁、

HotSwap

只能熱替換方法體。只要在eclipse或idea等開發(fā)工具中開啟debug模式即可使用。

HotSwap補(bǔ)丁 DCEVM

該補(bǔ)丁增強(qiáng)了HotSwap,可以增加、刪除類字段、方法和改變類的父類。也必須在debug模式下調(diào)試。具體使用可以參考如下文章,在此就不重復(fù)了

hotswap 用戶手冊(cè)

DCE使用的問題及其解決方法

我測(cè)試時(shí)使用的是jdk1.6.0_25,沒有問題,不支持jdk1.6.0_26,且我測(cè)試jdk7_13和jdk7_21沒成功。官網(wǎng)介紹說其是基于JDK7-b102編譯的。估計(jì)我下的這兩個(gè)版本不對(duì)。

java agent + Instrumentation

1、Spring-Loaded

SpringSource官網(wǎng)發(fā)布的,用在Grails 2中,允許:添加/修改/刪除 方法/字段/構(gòu)造器。類型/方法/字段/構(gòu)造器上的注解也允許修改,且也可以新增/刪除/修改enum類型的值。

使用方式:

  1. -javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify 

如在執(zhí)行tomcat/jetty時(shí)的VM參數(shù)中指定如上配置即可。無需在debug模式下執(zhí)行。如果使用的是如idea可以按Ctrl+Shift+F9編譯當(dāng)前類/Ctrl+F9編譯所有更改的類。

2、Fakereplace 

類似于Spring-Loaded,具體可參考其官網(wǎng):

https://github.com/fakereplace/fakereplace 

https://github.com/fakereplace/fakereplace/wiki/How-It-Works

它的好處是,支持一些框架:

  • Seam 2
  • Weld (基本集成)
  • JSF
  • Metawidget
  • Hibernate (實(shí)際是如果實(shí)體修改了,重啟整個(gè)EMF,也不是很快)
  • Resteasy

具體使用也是在VM參數(shù)中指定:

  1. -javaagent:/path/to/fakereplace.jar  

可以到如下地址下載jar包,或自己編譯

http://repo.grails.org/grails/plugins-releases/org/fakereplace/fakereplace-dist/1.0.0.Alpha2/

其提供了一些配置,如:

  1. -javaagent:/path/to/fakereplace.jar=packages=com.mycompany.myclasses,log=trace   
  • packages 需要熱替換的包
  • log 可選,支持trace,debug,info,error
  • index-file fakereplace索引為的路徑。Fakereplace在第一次運(yùn)行后存儲(chǔ)這個(gè)文件以加速啟動(dòng)
  • dump-dir 當(dāng)熱替換時(shí),Dump類到這個(gè)目錄,僅當(dāng)開發(fā)Fakereplace時(shí)有用
  • port Fakereplace監(jiān)聽的端口

它倆的實(shí)現(xiàn)很類似,Spring-Loaded使用了CGLIB來實(shí)現(xiàn)代理,F(xiàn)akeReplace使用了Javassist來實(shí)現(xiàn)的。

還有如Agent Smith,不過N久沒維護(hù)了。 其實(shí)Play框架也是使用了Instrumentation,但是它是整個(gè)替換,所以沒有歸類過來。

以上的都有個(gè)缺點(diǎn):如我在寫spring項(xiàng)目時(shí),無法動(dòng)態(tài)加載如@RequestMapping配置,或動(dòng)態(tài)加載配置文件。這些在強(qiáng)大的JRebel中都是支持的。

JRebel

JRebel是我目前簡單的最強(qiáng)大的熱替換/熱部署工具。但缺點(diǎn)是收費(fèi)的,而且不便宜。之前介紹的都是免費(fèi)的。首先大家可以看一下它支持的特性與JVM Hot Swap對(duì)比列表:

​#p#

JavaEE支持 JRebel JVM Hot Swap
裝載時(shí)間 <1s <1s
內(nèi)存泄漏
改變類結(jié)構(gòu)
 改變方法體  
[[76460]]
 
 
[[76460]]
 
添加/刪除方法  [[76460]]  [[76461]]
添加/刪除構(gòu)造器  [[76460]]  [[76461]]
添加/刪除字段  [[76460]]  [[76461]]
 添加/刪除類  [[76460]]  [[76461]]
 添加/刪除注解  [[76460]]  [[76461]]
改變靜態(tài)字段值   [[76460]]  [[76461]]
添加/刪除enum值   [[76460]]  [[76461]]
改變接口   [[76460]]  [[76461]]
替換父類   [[76460]]  [[76461]]
添加/刪除實(shí)現(xiàn)的接口  [[76460]]   [[76461]]
即時(shí)構(gòu)建  
跳過WAR目錄的構(gòu)建  [[76460]]  [[76461]]
跳過.WAR/.EAR類更新構(gòu)建  [[76460]]  [[76461]]
跳過.WAR/.EAR資源更新構(gòu)建  [[76460]]  [[76461]]
映射多個(gè)source目錄到一個(gè).WAR/.EAR目標(biāo)目錄  [[76460]]  [[76461]]
使用include/exclude模式映射類和資源 [[76460]] [[76461]]
使用Ant風(fēng)格模式映射多個(gè)sourcde目錄 [[76460]] [[76461]]
使用系統(tǒng)屬性使映射機(jī)器無關(guān) [[76460]] [[76461]]
Maven插件 [[76460]] [[76461]]
遠(yuǎn)程/云
通過HTTP進(jìn)行應(yīng)用更新 [[76460]] [[76461]]

JavaEE支持

JSP EL changes
JSP Scriptlet changes
EJB 1.x session bean interface changes
EJB 2.x session bean interface changes
EJB 3.x session bean interface changes
EJB 3.x: adding new EJB
EJB 3.x: adding new EJB reference
JSF changes (Mojarra)
Bean Validation support (Hibernate Validator)
JAXB annotation changes
JAX-RS changes (RESTEasy, Jersey, CXF)
JAX-WS support (Metro, CXF)
JPA changes (Hibernate, EclipseLink, TopLink, OpenJPA)

CDI changes (Weld)

框架支持
Spring Framework 2.x or later
Hibernate
JBoss Seam 2.x or later
Google Guice
Struts 1.x, 2.x
Wicket
Stripes 1.5 or later
查看完整的框架支持列表

代理支持

CgLib
Javassist

OSGi支持

Apache Felix
Eclipse Equinox

從如上列表看到其不是一般的強(qiáng)大。

接下來看看如何使用(以IDEA為例):

#p#

1、首先點(diǎn)擊如下圖所示的運(yùn)行,然后點(diǎn)擊Edit Configuration...

2、在彈出的窗口中輸入如下圖所示的jrebel.jar位置

 類似于之前的javaagent配置。

3、啟動(dòng)后,當(dāng)修改類后,請(qǐng)按Ctrl+F9重新編譯。然后再執(zhí)行程序即可看到變化。

4、Eclipse內(nèi)嵌tomcat的配置:

使用起來是非常簡單的。注意:如果使用web容器如tomcat、jetty,請(qǐng)禁用其reload,如jetty,可以配置

<scanIntervalSeconds>0</scanIntervalSeconds> 或者 <reload>manual</reload>。

JRebel也提供如Eclipse、IDEA、Maven插件,其實(shí)沒必要上插件,直接配javaagent就很簡單。還可以配置

如果有朋友想開啟/禁用某些框架/JavaEE的支持,可以通過添加VM參數(shù),如下所示開啟/關(guān)閉:

   -Drebel.spring_plugin=true
   -Drebel.aspectj_plugin=true
   -Drebel.struts2_plugin=true
   -Drebel.hibernate_plugin=true
   -Drebel.jackson_plugin=true
   -Drebel.log4j-plugin=true

完整的框架支持列表

還可以通過配置一個(gè)rebel.xml來進(jìn)行選擇性構(gòu)建:

http://zeroturnaround.com/software/jrebel/how-to-configure-rebel-xml/

更多配置請(qǐng)參考其官方的JRebel手冊(cè)

到此就介紹完了我見到的所有熱部署/熱替換實(shí)現(xiàn)方式,大家還有什么好的方式歡迎補(bǔ)充。

原文鏈接:http://jinnianshilongnian.iteye.com/blog/1887788

責(zé)任編輯:陳四芳 來源: 開濤的博客
相關(guān)推薦

2013-07-01 10:07:44

JavaSpringHibernate

2013-07-04 13:19:24

Java開發(fā)速度

2012-02-08 15:06:31

ibmdw

2009-09-24 17:21:17

加速Hibernate

2013-07-03 10:20:06

2010-05-05 17:19:55

云計(jì)算

2017-06-14 09:00:40

容器開發(fā)人員云應(yīng)用

2018-09-11 09:00:50

工具開發(fā)應(yīng)用程序

2009-08-21 15:40:26

Linux KerneLinux開發(fā)加速

2009-06-29 10:34:49

網(wǎng)站加速Page SpeedGoogle

2020-09-02 07:20:48

KubernetesJava應(yīng)用程序容器

2024-06-20 09:00:31

2011-05-05 15:36:25

深信服廣域網(wǎng)加速

2019-05-20 11:35:00

AWS出海加速營亞馬遜

2019-09-02 08:58:27

Python編譯器編程語言

2025-04-02 10:06:00

2010-11-04 13:08:48

Apache加速模塊

2013-07-04 13:37:23

Java開發(fā)速度
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产成+人+综合+亚洲欧美| www.国产.com| 99精品视频在线| 欧美videos中文字幕| 国产精品50p| 日本成人在线播放| 成人午夜又粗又硬又大| 国产精品99一区| 久久精品第一页| 欧美精品一区二区三区精品| 日韩欧美在线1卡| 日韩一级免费在线观看| 中文字幕在线观看播放| 91免费观看国产| 亚洲综合社区网| 黄色av一级片| 亚洲精品四区| 久久夜色精品国产欧美乱| 日本一卡二卡在线| 免费观看亚洲视频大全| 欧美午夜视频一区二区| 色乱码一区二区三区熟女| 清纯唯美亚洲色图| 成人爱爱电影网址| 亚洲一区中文字幕在线观看| 国产成人无码av| 亚洲一级高清| 久久久极品av| 美国一级黄色录像| 亚洲欧美tv| 亚洲成人久久久久| 欧美激情第一区| 国产成人精品一区二区三区免费| 天天综合日日夜夜精品| 草草草视频在线观看| 免费看a在线观看| 中日韩av电影| 日韩亚洲一区在线播放| 欧美色18zzzzxxxxx| 99热国产精品| 精品日本一区二区三区| 国内毛片毛片毛片毛片| 久久成人18免费观看| 国产精品黄视频| 一级片视频在线观看| 亚洲第一网站| 97视频免费在线观看| 久草资源在线视频| 欧美三区美女| 久久久久久久久久av| 九九热精品免费视频| 欧美成人综合| 欧美激情在线播放| 亚洲综合网在线| 欧美 日韩 国产精品免费观看| 中文字幕亚洲一区| 亚洲av无一区二区三区| 国产精品成人av| 久久影院资源网| 欧洲第一无人区观看| 欧美日韩国产在线一区| 欧美精品久久一区二区| 日韩美女黄色片| 99在线|亚洲一区二区| 97国产在线视频| 麻豆成人免费视频| 久久国产视频网| 亚洲综合小说区| 天堂成人在线视频| 国产香蕉久久精品综合网| 日韩三级电影| 色呦呦在线播放| 婷婷亚洲久悠悠色悠在线播放| 免费av观看网址| 日韩精选视频| 欧美一区二区性放荡片| 美女扒开腿免费视频| 亚洲人成网站77777在线观看| 国产亚洲精品久久久久久777| 亚洲激情图片网| 国产精品va| 欧美在线视频在线播放完整版免费观看 | 中文字幕免费高清在线观看| 精品亚洲国内自在自线福利| 成人av电影免费| 国产在线视频网| 亚洲欧美日韩中文字幕一区二区三区| 久久亚洲国产成人精品无码区| 国产欧洲在线| 911精品国产一区二区在线| 毛毛毛毛毛毛毛片123| 欧美三级自拍| 日韩中文字幕在线免费观看| 日本三级免费看| 蜜桃视频一区二区| 国产传媒一区二区| av在线电影免费观看| 亚洲综合一区二区| 成年人在线观看视频免费| 日韩视频一二区| 亚洲性线免费观看视频成熟| 欧美日韩亚洲国产另类| 石原莉奈在线亚洲二区| 亚洲一区二区三区四区视频| 欧美日韩免费做爰大片| 亚洲综合色成人| 一级黄色特级片| 偷拍视屏一区| 久久91亚洲人成电影网站| 欧美性猛交xxxx乱大交hd| 国产剧情一区二区| 亚洲欧美日韩国产成人综合一二三区| 最近的2019中文字幕免费一页| 日本少妇毛茸茸高潮| 国产一区二区三区在线观看精品 | 在线观看免费视频综合| 精品国产aⅴ一区二区三区东京热 久久久久99人妻一区二区三区 | 性猛交娇小69hd| 99精品欧美| 亚洲free性xxxx护士hd| 高清毛片在线看| 激情亚洲一区二区三区四区| 四虎国产精品永久免费观看视频| 精品国产91乱码一区二区三区四区| 欧美激情图片区| 国产精品视频一二区| 国产日韩欧美在线一区| a√天堂在线观看| 国产精品美女在线观看直播| 久久夜色精品国产亚洲aⅴ| 中国一区二区视频| 国产片一区二区三区| 国产无套内射久久久国产| 国产精品宾馆| 久久免费视频在线观看| 性一交一乱一乱一视频| 亚洲欧美一区二区不卡| 久久久久xxxx| 小处雏高清一区二区三区| 国产精品爽黄69天堂a| av在线电影免费观看| 欧美三级中文字幕| 韩国三级hd中文字幕| 久久一区精品| 日韩在线三级| 久久天天久久| 日日骚av一区| 国产精品无码AV| 亚洲美女偷拍久久| 久久无码人妻一区二区三区| 欧美国产美女| 91免费国产视频| 成人ww免费完整版在线观看| 欧美一区二区三区在线看 | 欧美日韩中文在线观看| 三叶草欧洲码在线| 麻豆9191精品国产| 视频一区视频二区视频三区视频四区国产 | 欧洲成人一区二区| 欧美暴力调教| 久久中文字幕在线| 高清国产mv在线观看| 亚洲大型综合色站| 免费在线观看你懂的| 日韩成人伦理电影在线观看| 亚洲午夜精品一区二区三区| 亚洲国产一区二区久久| 欧美激情18p| 亚洲欧美日韩精品永久在线| 色综合久久久久综合| 91精品国自产在线| 国产美女在线精品| av在线观看地址| 国产精品视频一区二区三区四蜜臂| 国产精品678| 在线heyzo| 日韩精品免费综合视频在线播放 | 国产黄色小视频网站| 成人激情免费网站| 狠狠热免费视频| 欧美人成在线| 日本一区免费观看| 欧美不卡在线观看| 日本电影亚洲天堂| 黄色成年人视频在线观看| 亚洲成人亚洲激情| 中文字幕日韩经典| 亚洲成人综合网站| 妖精视频在线观看免费| 成人免费视频播放| 天堂中文视频在线| 亚洲国产一区二区三区a毛片| 欧洲一区二区日韩在线视频观看免费| 国产精品久久久久久av公交车| 97在线日本国产| 麻豆视频网站在线观看| 精品亚洲国产成av人片传媒| 国产精品久久免费| 色综合天天综合色综合av| 五月天丁香激情| 国产蜜臀av在线一区二区三区| 国产精品久久久久野外| 日日夜夜精品视频天天综合网| 日韩专区第三页| 日韩精品水蜜桃| 精品一区二区三区国产| 日本一区二区三区视频在线看 | 国产熟女精品视频| 色www精品视频在线观看| 久久丫精品久久丫| 国产精品久久久久久久久免费桃花| 日批在线观看视频| 国产精品乡下勾搭老头1| 91看片在线免费观看| 国产精品婷婷| 日韩网站在线免费观看| 亚洲精品99| 亚洲一区综合| 欧美日韩激情在线一区二区三区| 韩国一区二区三区美女美女秀| 免费精品一区| 国产一区二区在线播放| 日韩制服诱惑| 国产大片精品免费永久看nba| aa视频在线观看| 欧美日韩成人在线视频| 国产福利在线播放麻豆| 日韩中文理论片| 成人在线观看一区| 亚洲桃花岛网站| 深夜福利视频在线免费观看| 亚洲国产成人一区| 国产成人无码www免费视频播放| 91精品视频网| 国产三级漂亮女教师| 欧美人与禽zozo性伦| 中文字幕无码乱码人妻日韩精品| 色老综合老女人久久久| www.欧美色| 色嗨嗨av一区二区三区| 免费观看日批视频| 日本道免费精品一区二区三区| 伊人手机在线视频| 日本精品一级二级| 久久这里只有精品9| 欧美性大战xxxxx久久久| 中文字幕乱伦视频| 欧美精选午夜久久久乱码6080| 国产又大又粗又硬| 欧美一区二区成人| 亚洲AV无码一区二区三区性| 精品久久久久一区二区国产| 手机看片国产1024| 亚洲精品一区二区久| 青青草视频在线免费观看| 亚洲欧美综合另类中字| av一本在线| 欧美国产视频日韩| 日本黄色免费在线| 国产99久久精品一区二区永久免费| 日本韩国欧美| 91香蕉亚洲精品| 国产乱人伦精品一区| 久久久久久99| 日韩一区欧美| 免费高清一区二区三区| 亚洲制服少妇| 亚洲精品www.| 成人av在线观| 国产又粗又猛又爽又黄av| 亚洲欧洲精品成人久久奇米网| 极品久久久久久| 亚洲成人免费在线观看| 亚洲色成人www永久网站| 欧美日韩高清在线播放| 亚洲国产精品视频在线| 亚洲欧美综合图区| 免费不卡视频| 91成品人片a无限观看| 久久精品97| 国产精品免费一区二区三区| 女人丝袜激情亚洲| 美女在线免费视频| 99精品欧美| 欧美成人手机在线视频| 99精品欧美一区二区三区小说| 亚洲ⅴ国产v天堂a无码二区| 亚洲理论在线观看| 亚洲天堂男人av| 日韩丝袜美女视频| 国产黄色片在线播放| 欧美精品久久久久久久| 高清在线一区| 久久免费看av| 欧美va天堂在线| 免费国产成人av| 成人午夜视频网站| 欧美肥妇bbwbbw| 日本高清无吗v一区| 黄色av免费观看| 最新的欧美黄色| sm在线观看| 国产精品欧美一区二区| 国产一区二区在线视频你懂的| 亚洲免费不卡| 亚洲影院免费| 伊人久久一区二区三区| 日韩理论片中文av| 秋霞av一区二区三区| 亚洲第一精品久久忘忧草社区| 午夜精品一区| 国产成人精品网站| 欧美综合精品| 一卡二卡三卡视频| 国产99精品国产| 午夜精品福利在线视频| 欧美在线观看禁18| 欧美少妇另类| 欧美专区第一页| 偷窥自拍亚洲色图精选| 亚洲熟妇无码一区二区三区| 国产精品一区二区在线观看不卡| 成人精品一二三区| 欧洲视频一区二区| 精品电影在线| 欧美与欧洲交xxxx免费观看| 白白在线精品| 国产精品女同一区二区三区| 可以免费看av的网址| 色综合av在线| 男女av在线| 欧洲亚洲在线视频| 西野翔中文久久精品字幕| 日韩一级片免费视频| 国产成人av资源| 激情综合五月网| 欧美变态口味重另类| 欧美日韩经典丝袜| 成人久久18免费网站漫画| 综合久久婷婷| 久久久久99人妻一区二区三区| 亚洲在线免费播放| 韩国av在线免费观看| 久久久久久久亚洲精品| 91成人短视频| 极品粉嫩国产18尤物| jizz一区二区| 国产精品人人人人| 亚洲欧美日韩一区二区在线 | 国产日韩精品电影| 久久久久久久久国产一区| 五月天婷婷在线观看视频| 又紧又大又爽精品一区二区| 亚洲国产日韩在线观看| 久久久久久69| 最新亚洲精品| 国产aaaaa毛片| 亚洲婷婷在线视频| www.蜜臀av.com| 久久免费视频网| 国产成人1区| 中文字幕久久av| 亚洲一区二区三区四区五区中文 | eeuss国产一区二区三区四区| 日本中文字幕在线视频观看| 91网址在线看| 97成人在线观看| 九九热这里只有在线精品视| 国产精品乱战久久久| 久久久久久久少妇| 亚洲丝袜精品丝袜在线| 蜜桃视频久久一区免费观看入口| 国产91av在线| 91欧美日韩| 国产精品无码电影| 欧美性猛片aaaaaaa做受| a在线免费观看| 久久久福利视频| 黄色小说综合网站| 色播视频在线播放| 少妇高潮久久77777| 粉嫩的18在线观看极品精品| 成人黄色片视频| 亚洲色图欧美在线| 三级毛片在线免费看| 成人精品在线观看| 国产欧美在线| 手机在线免费看片| 亚洲欧美激情精品一区二区| 成人av在线播放| 色欲av无码一区二区人妻| 最新日韩av在线| 欧美挠脚心网站| 成人在线观看av| 美女高潮久久久| 亚洲一区欧美在线| 久久久精品视频在线观看| 妖精视频一区二区三区| 欧美人与性动交α欧美精品| 色婷婷久久99综合精品jk白丝|