频道栏目
首页 > 资讯 > Linux > 正文

实现Tomcat热更新部署

17-08-09        来源:[db:作者]  
收藏   我要投稿

插件式的架构可以为系统带来极高的扩展性。典型的一个例子就是eclipse。我们可以下载各种各样的插件来不断丰富eclipse的功能,而eclipse本身却不需要作任何改动。那么在Java中如何实现插件机制呢?

动态加载

实现插件式系统的基础是动态加载机制。所谓动态加载是指系统所要用到的字节码文件不需要添加classpath目录下,而在运行时由程序本身根据需要加载到jvm中。这种情况下相应的jar包可以放在任意位置,甚至从网络上获取。jdk中的ClassLoader类为我们提供了这一强大的特性。我们可以自定义一个子类来继承ClassLoader类,从而实现一些自定义的需求,但不要轻易就重写ClassLoader的方法,除非你对ClassLoader非常熟悉,并且有非这样做不可的需求。在本文,我们可以直接使用了jdk自带的URLClassLoader类来实现插件的动态加载。

URLClassLoader的构造函数原型为:

public URLClassLoader(URL[] urls, ClassLoader parent)
1
1
第一个参数为class文件或jar包的URL列表,大致可以理解为class文件的地址,该地址可以是本地磁盘地址也可以是网络地址。第二个参数为父级ClassLoader,该参数我们一般都赋值为调用者本身的ClassLoader。此处需要非常注意的是java中的类都是由classloader加载的,如果同一个class文件由不同的classloader加载,则被认为是两个class类型,他们的实例间也不能强制转换。关于ClassLoader的更详尽的讲解可以参考这篇博文: 深入分析Java ClassLoader原理

动态加载类文件需要使用URLClassLoader类的loadClass方法,其原型为:

public Class

相关TAG标签
上一篇:mysql分表和表分区详解
下一篇:数据包过滤及分析实例 tshark tcpdump
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站