1、热部署与热加载
在应用运行的时候升级软件,无需重新启动的方式有两种,热部署和热加载。
它们之间的区别是:
(1)、部署方式:
热部署在服务器运行时重新部署项目。
热加载在运行时重新加载class。
(2)、实现原理
热部署直接重新加载整个应用,这种方式会释放内存,比热加载更加干净,但是它比热加载更加的浪费时间。
热加载在运行时重新加载class,主要使用的是类加载机制,在实现方式上就是在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳发生变化,则将类重新载入。
(3)、使用场景
热部署更多的是在生产环境中使用,就是适用于频繁的部署并且启动耗时长的应用、无法停止服务的应用等。
热加载则更多的是在开发环境中使用,用于开发,debug中,可以大大的提高开发效率。
2、配置方式
(1)、热部署
<Context docBase="D:svnshengmakhWebRoot" path="/shengmakh" reloadable="true"/>
(2)、热加载
<Context docBase="D:svnsmknjkgbWebContent" path="/smknjkgb" reloadable="false" crossContext="true" />