java web应用程序的热部署

热部署对于程序开发的好处就不用多说了。

这里记录一下自己的使用过程:

1.myeclipse的年代,那时候通过myeclipse新建的web项目,以debug方式启动,可以获得修改java类中的方法体和jsp页面立即生效的功能支持,这是纯eclipse所没有的。

2.后来发现了jrebel可以获得新增java类和方法也无需重启应用服务器即可生效的功能,当然这个功能不完善,有缺陷,比如内存占用变大,加载变慢,间或失效等。

3.随着eclipse的升级,推出了JEE版本的eclipse,也就逐渐淘汰了myeclipse,但是JEE版本的eclipse和tomcat配合,即便使用debug模式启动,修改java类还是会导致整个应用的重新加载,这是不能忍受的,这时候,发现了jetty配合eclipse可以完美的实现热加载,即改即用,很方便。

4.随后又发现了一个叫dcevm的东西,很好的支持了新增java类和方法也无需重启应用服务器即可生效,比jrebel完美。到此,一切都圆满了:)

5.或者还有更好的方式我没有发现?

ps:发现tomcat 6.20以后的版本机制不一样,修改jsp都被缓存,导致修改刷新不生效,只能用以前的版本,不知为何。。。不过,我现在基本也不用tomcat了