[发明专利]组件动态加载与执行的方法和装置在审
申请号: | 201710032926.2 | 申请日: | 2017-01-18 |
公开(公告)号: | CN108334374A | 公开(公告)日: | 2018-07-27 |
发明(设计)人: | 黄世清 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 许蓓 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 模型组件 加载 类加载器 组件动态 方法和装置 上下文对象 反射方式 服务运行 运行服务 组件加载 类继承 类信息 创建 调用 | ||
本发明公开了一种组件动态加载与执行的方法和装置,涉及组件加载与运行领域。其中的方法包括:设置欲执行的模型组件以及所述模型组件中欲运行的类,其中,所述模型组件中欲运行的类继承所述模型组件的接口;创建类加载器;利用创建的所述类加载器对所述模型组件进行加载;利用类反射方式,将所述模型组件中欲运行的类信息和所述模型组件的上下文对象作为参数,调用所述类加载器的服务运行方法加载所述模型组件中的运行接口来运行所述模型组件的运行服务。从而使得组件动态加载与执行实现起来更加简单。
技术领域
本发明涉及组件加载与运行领域,特别涉及一种组件动态加载与执行的方法和装置。
背景技术
组件通常在应用服务器启动时被加载并运行。如果组件更新,往往需要重新启动应用服务器对该组件进行加载。然而,有时会希望能够在不重启应用服务器的情况下更新并加载组件,即动态加载组件。
OSGI(Open Service Gateway Initiative,开放服务网关协议)是面向JAVA的动态模型系统,允许开发人员构建动态化、模块化的JAVA系统。OSGI通过模块化和动态化来对组件进行动态加载与执行,其中,模块化是指可以将一个大型系统分解为多个较小的互相协作的逻辑单元,通过强制设定模块之间的逻辑边界来改善系统的维护性和封装性。动态化是指提供在多种网络设备上无需重启情况下的动态改变构造的功能。OSGI的功能比较强大,然而,要利用OSGI提供的模块化的特点,就不得不接受其动态化的特点,由此造成组件动态加载与运行实现起来比较复杂。
发明内容
本发明要解决的一个技术问题是:目前组件动态加载与运行实现起来比较复杂的问题。
根据本发明的一个方面,提供一种组件动态加载与执行的方法,包括:设置欲执行的模型组件以及所述模型组件中欲运行的类,其中,所述模型组件中欲运行的类继承所述模型组件的接口;创建类加载器;利用创建的所述类加载器对所述模型组件进行加载;利用类反射方式,将所述模型组件中欲运行的类信息和所述模型组件的上下文对象作为参数,调用所述类加载器的服务运行方法加载所述模型组件中的运行接口来运行所述模型组件的运行服务。
其中,可以通过服务组件提供的接口参数设置欲执行的模型组件以及所述模型组件中欲运行的类。
其中,可以通过实现URLClassLoader并重载findclass方法来创建类加载器,其中,实现的URLClassLoader用于加载任意指定目录下所述模型组件的文件,重载的findclass方法用于从资源库中查找所述模型组件中欲运行的类,所述资源库中缓存所述模型组件的文件。
如果有多个模型组件,可以为不同的模型组件分别创建对应的类加载器,每个类加载器加载对应的模型组件。
组件动态加载与执行的方法还包括:在运行所述模型组件的运行服务之前,利用类反射方式,将所述模型组件中欲运行的类信息和所述模型组件的上下文对象作为参数,调用所述类加载器的初始化方法加载所述模型组件中的初始化接口来运行所述模型组件的初始化服务。
组件动态加载与执行的方法还包括:在运行所述模型组件的运行服务之后,利用类反射方式,将所述模型组件中欲运行的类信息和所述模型组件的上下文对象作为参数,调用所述类加载器的清理方法加载所述模型组件中的清理接口来运行所述模型组件的清理服务;卸载所述类加载器,释放所述类加载器占用的资源。
根据本发明的再一个方面,提供一种组件动态加载与执行的装置,其特征在于,包括:设置模块,用于设置欲执行的模型组件以及所述模型组件中欲运行的类,其中,所述模型组件中欲运行的类继承所述模型组件的接口;创建模块,用于创建类加载器;加载模块,用于利用创建的所述类加载器对所述模型组件进行加载;运行模块,用于利用类反射方式,将所述模型组件中欲运行的类信息和所述模型组件的上下文对象作为参数,调用所述类加载器的服务运行方法加载所述模型组件中的运行接口来运行所述模型组件的运行服务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710032926.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多MCU升级的方法及系统
- 下一篇:VR设备的配置方法及装置、VR设备