在应用运行的时候升级软件,无需重新启动的方式有两种:热部署和热加载。
(1)、部署方式:
热部署在服务器运行时重新部署项目。
热加载在运行时重新加载class。
(2)、实现原理
热部署直接重新加载整个应用,这种方式会释放内存,比热加载更加干净,但是它比热加载更加的浪费时间。
热加载在运行时重新加载class,主要使用的是类加载机制,在实现方式上就是在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳发生变化,则将类重新载入。
(3)、使用场景
热部署更多的是在生产环境中使用,配置如下:
在tomcat\conf\server.xml中的<host></host>内部添加<context/>标签:
<Context debug="0" docBase="C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\webproject" path="/webproject" privileged="true" reloadable="true"/>
热加载则更多的是在开发环境中使用,用于开发、debug中,可以大大的提高开发效率。