tomcat热加载和热部署,三种方法

我在项目开发过程中,经常要改动Java 文件,但是又不想从新启动服务器(服务器从新启动花时间),想直接获得(debug)结果.有两种方式热部署 和热加载:
热部署更多的是在生产环境中使用,就是适用于频繁的部署并且启动耗时长的应用、无法停止服务的应用等。
开发环境则直接在Eclipse的Server里面直接配置publishing,默认有这功能

配置tomcat实现热部署与热加载的方式
、在tomcat的webapps中新建一个与项目名相同的文件,并把项目下WebContent文件夹下的内容剪切到刚刚新建的文件夹中。这是tomcat自带的热部署。
、在tomcat\conf\server.xml中的Host标签中加上一个配置。

1)热加载:在server.xml -> context 属性中 设置 reloadable=“true”

<Context docBase="xxx" path="/xxx" reloadable="true"/> 

2) 热部署:在server.xml -> context 属性中 设置 autoDeploy=“true”

<Context docBase="xxx" path="/xxx" autoDeploy="true"/>

同样可以:

代码

<Host name="localhost" appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false"> 
<Context docBase="xxx" path="/xxx"/>  
</Host> 

、在tomcat\conf\catalina\localhost中添加一个xml文件

如:demo1.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?> 
<Context docBase="D:\demo1\web" reloadable="true" /> 

只是缺少了path属性,如果你硬写个path="demo2"的话,是没有用的,tomcat不明确的告诉你:“我不认得”,
这种方式服务器会使用xml文件的名字作为path属性的名字,SO访问地址为:http://localhost:8080/demo1

区别:
热加载:服务器会监听 class 文件改变,包括web-inf/class,wen-inf/lib,web-inf/web.xml等文件,若发生更改,则局部进行加载,不清空session ,不释放内存。开发中用的多,但是要考虑内存溢出的情况。

热部署: 整个项目从新部署,包括你从新打上.war 文件。 会清空session ,释放内存。项目打包的时候用的多。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值