一种插件管理方法及系统技术方案

技术编号:39312236 阅读:5 留言:0更新日期:2023-11-12 15:57
本发明专利技术提供了插件管理技术领域的一种插件管理方法及系统,方法包括如下步骤:步骤S10、基于插件代码、插件依赖库、插件配置文件以及插件资源文件创建插件包;步骤S20、分别为各所述插件包创建一专属的第一类加载器;步骤S30、通过JVW虚拟机的双亲委托模型,让核心系统的第二类加载器作为所述第一类加载器的父加载器;步骤S40、基于JavaSPI机制设定各所述插件包的接口实现类;步骤S50、从插件列表中选择对应的插件包,通过所述第一类加载器对插件包进行安装;步骤S60、对安装的所述插件包进行全生命周期的管理。本发明专利技术的优点在于:极大的提升了插件运行的稳定性。提升了插件运行的稳定性。提升了插件运行的稳定性。

【技术实现步骤摘要】
一种插件管理方法及系统


[0001]本专利技术涉及插件管理
,特别指一种插件管理方法及系统。

技术介绍

[0002]随着信息技术的不断发展,软件系统变得越来越复杂和庞大,需要具备更高的可扩展性和灵活性,以便在不断变化的应用环境中保持其长久存在。然而,传统的软件系统难以应对这种变化,基于Java语言的插件是一种强大而又灵活的解决方案,可以满足软件系统不断变化的需求,同时保证其稳定性和安全性。
[0003]插件的核心在于插件接口规范、插件隔离、事件通信和消息传递,为了实现插件隔离,需要每个插件独立创建专属的类加载,但是每个插件或多或少都使用到核心系统的功能,如果让类加载也去加载核心系统的类,这样会导致JVM虚拟机占用的内存大大增加;且传统的软件系统在启动时同时加载所有的插件,存在很大的性能损耗,最终影响插件运行的稳定性。
[0004]因此,如何提供一种插件管理方法及系统,实现提升插件运行的稳定性,成为一个亟待解决的技术问题。

技术实现思路

[0005]本专利技术要解决的技术问题,在于提供一种插件管理方法及系统,实现提升插件运行的稳定性。
[0006]第一方面,本专利技术提供了一种插件管理方法,包括如下步骤:
[0007]步骤S10、基于插件代码、插件依赖库、插件配置文件以及插件资源文件创建插件包;
[0008]步骤S20、分别为各所述插件包创建一专属的第一类加载器;
[0009]步骤S30、通过JVW虚拟机的双亲委托模型,让核心系统的第二类加载器作为所述第一类加载器的父加载器;
[0010]步骤S40、基于JavaSPI机制设定各所述插件包的接口实现类;
[0011]步骤S50、从插件列表中选择对应的插件包,通过所述第一类加载器对插件包进行安装;
[0012]步骤S60、对安装的所述插件包进行全生命周期的管理。
[0013]进一步的,所述步骤S10中,所述插件代码基于Java语言创建;所述插件配置文件至少包括数据库信息以及系统参数;所述插件资源文件至少包括插件信息、图片以及音频。
[0014]进一步的,所述步骤S20中,所述第一类加载器用于插件包的安装和运行,隔离插件包与核心系统的接口和类库。
[0015]进一步的,所述步骤S50具体为:
[0016]从插件列表中选择对应的插件包,解析所述插件包得到插件代码、插件依赖库、插件配置文件以及插件资源文件,通过所述第一类加载器加载插件代码、插件依赖库、插件配
置文件以及插件资源文件,以对所述插件包进行安装,基于插件服务发现机制获取所述插件包内的接口实现类,基于所述接口实现类触发插件包预设的初始化事件。
[0017]进一步的,所述步骤S60中,所述全生命周期包括加载、初始化、运行、停止以及卸载。
[0018]第二方面,本专利技术提供了一种插件管理系统,包括如下模块:
[0019]插件包创建模块,用于基于插件代码、插件依赖库、插件配置文件以及插件资源文件创建插件包;
[0020]第一类加载器创建模块,用于分别为各所述插件包创建一专属的第一类加载器;
[0021]父加载器设定模块,用于通过JVW虚拟机的双亲委托模型,让核心系统的第二类加载器作为所述第一类加载器的父加载器;
[0022]接口实现类设定模块,用于基于JavaSPI机制设定各所述插件包的接口实现类;
[0023]插件包安装模块,用于从插件列表中选择对应的插件包,通过所述第一类加载器对插件包进行安装;
[0024]插件包管理模块,用于对安装的所述插件包进行全生命周期的管理。
[0025]进一步的,所述插件包创建模块中,所述插件代码基于Java语言创建;所述插件配置文件至少包括数据库信息以及系统参数;所述插件资源文件至少包括插件信息、图片以及音频。
[0026]进一步的,所述第一类加载器创建模块中,所述第一类加载器用于插件包的安装和运行,隔离插件包与核心系统的接口和类库。
[0027]进一步的,所述插件包安装模块具体用于:
[0028]从插件列表中选择对应的插件包,解析所述插件包得到插件代码、插件依赖库、插件配置文件以及插件资源文件,通过所述第一类加载器加载插件代码、插件依赖库、插件配置文件以及插件资源文件,以对所述插件包进行安装,基于插件服务发现机制获取所述插件包内的接口实现类,基于所述接口实现类触发插件包预设的初始化事件。
[0029]进一步的,所述插件包管理模块中,所述全生命周期包括加载、初始化、运行、停止以及卸载。
[0030]本专利技术的优点在于:
[0031]通过插件代码、插件依赖库、插件配置文件以及插件资源文件创建插件包,分别为各插件包创建一专属的第一类加载器,并通过JVW虚拟机的双亲委托模型,让核心系统的第二类加载器作为第一类加载器的父加载器,接着基于JavaSPI机制设定各插件包的接口实现类;从插件列表中选择对应的插件包,通过第一类加载器以及接口实现类对插件包进行安装,并对安装的插件包进行包括加载、初始化、运行、停止以及卸载的全生命周期的管理;由于让核心系统的第二类加载器作为第一类加载器的父加载器,已被第二类加载器所加载的类不会被重复加载,同时每个插件包均可以使用到核心系统的功能,大大减少了插件包对JVM虚拟机内存的占用,且各插件包可按需安装和运行,避免像传统上同时加载所有插件包而造成性能损耗,最终极大的提升了插件运行的稳定性。
附图说明
[0032]下面参照附图结合实施例对本专利技术作进一步的说明。
[0033]图1是本专利技术一种插件管理方法的流程图。
[0034]图2是本专利技术一种插件管理系统的结构示意图。
具体实施方式
[0035]本申请实施例中的技术方案,总体思路如下:通过双亲委托模型,让核心系统的第二类加载器作为第一类加载器的父加载器,已被第二类加载器所加载的类不会被重复加载,同时每个插件包均可以使用到核心系统的功能,进而减少插件包对JVM虚拟机内存的占用,且各插件包可按需安装和运行,避免性能损耗,以提升插件运行的稳定性。
[0036]请参照图1至图2所示,本专利技术一种插件管理方法的较佳实施例,包括如下步骤:
[0037]步骤S10、基于插件代码、插件依赖库、插件配置文件以及插件资源文件创建插件包,设定所述插件包的权限;
[0038]步骤S20、分别为各所述插件包创建一专属的第一类加载器;
[0039]步骤S30、通过JVW虚拟机的双亲委托模型,让核心系统的第二类加载器作为所述第一类加载器的父加载器;
[0040]类加载器存Bootstramp、Extension和System三种;Bootstramp是最基本的类加载器,可以加载JavaAPI类库;Extension用于加载Java扩展类库;System类加载器用于加载应用程序需要的类;核心系统的类均由System类加载器所加载。
[0041]为了实现所述插件包的隔本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种插件管理方法,其特征在于:包括如下步骤:步骤S10、基于插件代码、插件依赖库、插件配置文件以及插件资源文件创建插件包;步骤S20、分别为各所述插件包创建一专属的第一类加载器;步骤S30、通过JVW虚拟机的双亲委托模型,让核心系统的第二类加载器作为所述第一类加载器的父加载器;步骤S40、基于JavaSPI机制设定各所述插件包的接口实现类;步骤S50、从插件列表中选择对应的插件包,通过所述第一类加载器对插件包进行安装;步骤S60、对安装的所述插件包进行全生命周期的管理。2.如权利要求1所述的一种插件管理方法,其特征在于:所述步骤S10中,所述插件代码基于Java语言创建;所述插件配置文件至少包括数据库信息以及系统参数;所述插件资源文件至少包括插件信息、图片以及音频。3.如权利要求1所述的一种插件管理方法,其特征在于:所述步骤S20中,所述第一类加载器用于插件包的安装和运行,隔离插件包与核心系统的接口和类库。4.如权利要求1所述的一种插件管理方法,其特征在于:所述步骤S50具体为:从插件列表中选择对应的插件包,解析所述插件包得到插件代码、插件依赖库、插件配置文件以及插件资源文件,通过所述第一类加载器加载插件代码、插件依赖库、插件配置文件以及插件资源文件,以对所述插件包进行安装,基于插件服务发现机制获取所述插件包内的接口实现类,基于所述接口实现类触发插件包预设的初始化事件。5.如权利要求1所述的一种插件管理方法,其特征在于:所述步骤S60中,所述全生命周期包括加载、初始化、运行、停止以及卸载。6.一种插件管理系统,其特征在于:包括如下模块:插件包创...

【专利技术属性】
技术研发人员:黄家昌林鑫杨辉
申请(专利权)人:福建亿能达信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1