eclipse实现热部署和热启动

 eclipse实现热部署和热启动

      (1) 热部署:就是容器状态在运行的情况下重新部署整个项目.在这种情况下一般整个内存会清空,重新加载.简单来说就是Tomcat或者其他的web服务器会帮我们重新加载项目.这种方式可能会造成sessin丢失等情况.

      (2)热加载:就是容器状态在运行的情况下重新加载改变编译后的类.在这种情况下内存不会清空,sessin不会丢失,但容易造成内存溢出,或者找不到方法。因为内存无法转变成对像. 一般改变类的结构和模型就会有异常,在已经有的变量和方法中改变是不会出问题的

        在基于Java的实现热部署、热加载的过程中,类装入器扮演着重要的角色。类装入器不能重新装入一个已经装入的类,否则会报java.lang.LinkageError,但只要使用一个新的类装入器实例,就可以将类再次装入一个正在运行的应用程序。一般debug模式都支持热加载。

       但我在这里遇到了eclipse使用debug启动却并没有热加载的状况,这样对于开发来说是非常耗时的,因为每更改一次class文件都需要重新编译。下面我就如何使用eclipse进行热加载,做一个简单介绍:

    

 

  启动eclicpse 找到下面这个目录

     

    打开server.xml,找到

  

<Context docBase="dreamlive" path="/ROOT" reloadable="false" crossContext="true" source="org.eclipse.jst.jee.server:dreamlive"/>

 

这行代码,在你部署新项目的时候,docBase和source会随着改变,现在还是 热部署   的状态,这样每次更改class文件都会自动的去编译,比较耗时,接下来我们更改一下配置:

<Context docBase="dreamlive" path="/ROOT" reloadable="false" crossContext="true" source="org.eclipse.jst.jee.server:dreamlive"/></Host>


这里将reloadable改为false,添加crossContext="true",这样就能进行   热启动   了,注意:需要用debug启动

不过我们需要在每次部署新项目的时候,重新去更改这个配置,我们可以观察每次部署新项目的时候,server.xml这个文件的动态变化。



  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值