详解tomcat热部署和热加载的方法
在项目开发过程中,经常要改动Java/JSP 文件,但是又不想从新启动服务器(服务器从新启动花时间),想直接获得(debug)结果.有两种方式热部署 和热加载:
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"/>
path:指定访问
该web应用的URL进口
docBase:指定web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性【默认
指向tomcat的webapps】的相对路径;要是Web应用是个war文件,则指定war文件的路径。
reloadable:要是这个属性设置为true,Tomcat服务器在运行状况下会监视在WEB-INF/classess和WEB- INF/lib目次下的class文件的改动,以及监视web应用的WEB-INF/web.xml文件的改动。要是检测到的class 文件或者web.xml文件被更新,服务器会自动加载Web应用。该属性的默认值为false.在web应用的开发和调 试阶段,把reloadable设为true,可以方便对web应用的调试。在web应用正式发布阶段,把reloadable设为 false,可以减低tomcat的运行负荷,提高Tomcat的运行性能。
3.区别:
热加载:服务器会监听 class 文件改变,包括web-inf/class,wen-inf/lib,web-inf/web.xml等文件,若发生更改,则局部进行加载,不清空session ,不释放内存。开发中用的多,但是要考虑内存溢出的情况。
热部署: 整个项目从新部署,包括你从新打上.war 文件。 会清空session ,释放内存。项目打包的时候用的多。