在Java中,要实现热部署,首先,你得明白,Java中类的加载方式。每一个应用程序的类都会被ClassLoader加载,所以,要实现一个支持热部署的应用,我们可以对每一个用户自定义的应用程序使用一个单独的ClassLoader进行加载。然后,当某个用户自定义的应用程序发生变化的时候,我们首先销毁原来的应用,然后使用一个新的ClassLoader来加载改变之后的应用。而所有其他的应用程序不会受到一点干扰。
热更新的思路:
定义一个用户自定义应用程序的接口,这是因为,我们需要在容器应用中去加载用户自定义的应用程序。
我们还需要一个配置文件,让用户去配置他们的应用程序。
应用启动的时候,加载所有已有的用户自定义应用程序。
为了支持热部署,我们需要一个监听器,来监听应用发布目录中每个文件的变动。这样,当某个应用重新部署之后,我们就可以得到通知,进而进行热部署处理。
景安河南最大的多线服务器托管商,提供专业的双机热备、负载均衡等高可用/高并发服务!
因为jsp页面被编译后有一个固定的基类,并且继承层数不会超过一层,像ASP.NET里面所有的页面都是继承自Page。Java也是一个道理,当服务器知道被更新的类型只是Jsp页面(页面类的子类)那就只需要重新加载jsp页面文件即可,因为其基类没有可能被更改,而且jsp页面也没有可能从其它基类总继承而来,所以jsp页面是相对独立的,可以独立刷新或重新加载。
但是class的更新服务器并不知道你更改的class是否其它类型的基类,所以只能从新加载整个项目。
所谓热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。
对于Java应用程序来说,热部署就是在运行时更新Java类文件。在基于Java的应用服务器实现热部署的过程中,类装入器扮演着重要的角色。
大多数基于Java的应用服务器,包括EJB服务器和Servlet容器,都支持热部署。类装入器不能重新装入一个已经装入的类,但只要使用一个新的类装入器实例,就可以将类再次装入一个正在运行的应用程序。
扩展资料
辅助用户使用和管理PKUAS的工具集合,主要包括部署工具、配置工具与实时监控工具。其中,部署工具既可热部署整个应用,也可热部署单个构件,从而实现应用的在线演化;配置工具允许用户配置整个服务器或单个应用;而实时监控工具允许用户实时观察系统的运行状态并作出相应调整。
没有热部署和有热部署的开发效率是天差地别的。这个问题还受很多第三方软件包(Struts,Spring,Hibernate)的限制。本来可以热部署,加入了第三方的包就不可以了。所以,先说明详细的 软件环境,和程序配置是非常必要的。
参考资料来源:百度百科-热部署
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)