在Java中,要实现热部署,首先,你得明白,Java中类的加载方式。每一个应用程序的类都会被ClassLoader加载,所以,要实现老纤一个支持热部署的应用,我们拆物可以对每一个用户自定义的应用程序使用一个单独的ClassLoader进行加载。然后,当某个用户自定义的应用程序发生变化的时候,我们首先销毁原来的应用,然后使用一个新的ClassLoader来加载改变之后的应用。而所有其他的应用程序不会受到一点干扰。
热更新的思路:
定义一个用户自定义应用程序的接口,这是因为,我们需要在容器应用中去加载用户自定义的应用程序。
我们还需要一个配置文件,让用户去配置他们的应用程序。旅含液
应用启动的时候,加载所有已有的用户自定义应用程序。
为了支持热部署,我们需要一个监听器,来监听应用发布目录中每个文件的变动。这样,当某个应用重新部署之后,我们就可以得到通知,进而进行热部署处理。
景安河南最大的多线服务器托管商,提供专业的双机热备、负载均衡等高可用/高并发服务!
因为jsp页面被编译后有一个固定的基类,并且继承层数不会超过一层,像ASP.NET里面所枝备有乎巧的页面都是继承自Page。Java也是一个道理,当服务器知道被更新的类型只是Jsp页面(页面类的子类)那就只需要重新加载jsp页面文件即可,因为其基类没有可能被更改,而且jsp页面也没有岁搭键可能从其它基类总继承而来,所以jsp页面是相对独立的,可以独立刷新或重新加载。
但是class的更新服务器并不知道你更改的class是否其它类型的基类,所以只能从新加载整个项目。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)