程序插件加载方法、装置、计算机设备及计算机程序与流程

文档序号:35980630发布日期:2023-11-10 00:18阅读:28来源:国知局
程序插件加载方法、装置、计算机设备及计算机程序与流程

本发明涉及计算机,尤其涉及一种程序插件加载方法、装置、计算机设备及计算机程序。


背景技术:

1、传统程序的插件加载方法使用基于双亲委派模型的加载方式,往往存在一些问题,比如当程序的不同插件模块或者不同版本出现了对应某一程序包的特定版本的依赖,而此时若将同一插件的相同版本包都使用双亲委派机制加载时,可能会出现包冲突的问题,这时候插件之间反而希望有一个独立的加载器去加载到自己需要的包,因此出现了打破双亲委派机制的加载方式,由自己先加载并查找需要用到的包,找不到再向上查找,以保证插件的稳定性与多种插件或多版本插件的共容性。

2、但这也引发了一些新的问题,比如插件之间的依赖关系彼此独立,当部分插件都有相通的依赖包时,重复的依赖包将占用大量的空间,这个问题也会随着插件的增多越来越明显。

3、本发明的目的在于提供一种办法,在程序安装时对插件包依赖进行统一压缩合并管理,并实现基于打破双亲委派的类加载方式,在插件使用时按需加载,实现插件包依赖加载的高效性与内存占用的平衡,减小软件安装占用体积。


技术实现思路

1、针对现有技术中所存在的不足,根据本发明的实施例,提供了一种程序插件加载方法、装置、计算机设备及计算机程序,其解决了现有技术中存在的在插件加载过程中相通的依赖将占用大量的内存空间的问题。

2、根据本发明的实施例,第一个方面,提出来一种程序插件加载方法,其特征在于,包括:

3、s1:定义一种应用程序的插件包和依赖包;

4、所述插件包包含若干插件,每个插件中又包含若干第一程序包;

5、s2:完成插件包和依赖包的部署;

6、s21:对插件包中所有的第一程序包以自身的文件储存校验码信息重命名,生成第二程序包;

7、s22:将第二程序包移动到依赖包所在目录,并在出现重复文件名的文件时进行替换;

8、s3:建立插件和对应依赖包之间的依赖链接;

9、s4:在每个插件位置下建立插件描述文件,插件描述文件中包含插件描述信息;

10、s5:将所述插件描述信息上传到元数据库中;

11、s6:在应用程序运行时,使用自定义的类加载器对目标插件进行按需加载。

12、在一个实施例中,所述步骤s3包括:

13、s31:在插件的第一程序包原始位置上建立指向所生成的第二程序包的链接文件;

14、s32:对链接文件以第一程序包的原始名称进行重命名。

15、在一个实施例中,所述插件描述信息包括插件名称、插件图标、插件类别、插件位置信息和/或插件版本。

16、在一个实施例中,所述步骤s6包括:

17、s61:通过元数据库找到待加载的目标插件;

18、s62:将目标插件的插件描述信息加载到应用程序的内存中;

19、s63:获取目标插件的插件位置信息;

20、s64:通过自定义的类加载器加载目标插件位置下的链接文件所指向的第二程序包。

21、在一个实施例中,所述步骤s6之前还包括:

22、通过显示界面显示所有可供使用的插件的插件描述信息。

23、第二个方面,在一个实施例中,提出来一种程序插件加载装置,包括:插件安装模块、元数据库和插件装载及运行模块;

24、所述插件安装模块用于在应用程序安装时,对目标插件的插件包及对应的依赖包进行分析处理,实现对目标插件的压缩、储存和安装;

25、所述插件装载及运行模块用于在应用程序调用目标插件时,使用自定义的类加载器对目标插件进行按需加载。

26、在一个实施例中,所述插件安装模块包括:

27、定义模块,用于定义一种应用程序的插件包和依赖包;

28、部署模块,用于完成插件包和依赖包的部署;

29、所述部署模块包括重命名单元和移动单元;

30、所述重命名单元用于对插件包中所有的第一程序包以文件储存校验码信息重命名,生成第二程序包;所述移动单元用于将第二程序包移动到依赖包所在目录,并在出现重复文件名的文件时进行替换;

31、链接关系建立模块,用于建立插件和对应依赖包之间的依赖链接;

32、所述链接关系建立模块包括链接文件建立模块和链接文件重命名模块;

33、所述链接文件建立模块用于在插件的第一程序包原始位置上建立指向所生成的第二程序包的链接文件;所述链接文件重命名模块用于对链接文件以第一程序包的原始名称进行重命名;

34、插件描述文件建立模块,用于在每个插件位置下建立插件描述文件,插件描述文件中包含插件描述信息;

35、数据上传模块,用于将所述插件描述信息上传到元数据库中。

36、在一个实施例中,所述插件装载及运行模块包括:

37、插件寻找模块,用于通过元数据库找到待加载的目标插件;

38、插件信息加载模块,用于将目标插件的插件描述信息加载到应用程序的内存中;

39、插件位置信息获取模块,用于获取目标插件的插件位置信息;

40、插件加载模块,用于通过自定义的类加载器加载目标插件位置下的连接文件所指向的第二程序包。

41、第三个方面,提出来一种计算机设备,包括:存储器和处理器,所述存储器中存储有计算机程序,所述处理器用于调用所述计算机程序,以执行权利要求1-5中任一项所述的程序插件加载方法中的操作步骤。

42、第四个方面,提出来一种计算机程序,其特征在于,当所述程序被调用时,用于执行如权利要求1-5中任一项所述的程序插件加载方法中的操作步骤。

43、相比于现有技术,本发明具有如下有益效果:

44、1、在插件加载前,使用文件储存校验码信息对插件中的程序包进行重命名,并将重命名后的程序包迁移至依赖包区域,并在出现重复文件名的文件时进行替换,能够防止出现依赖包冲突的情况,由于相同的程序包最终只保留一份,还能够有效地节省磁盘空间。

45、2、在插件加载前,建立插件和对应的依赖包之间的依赖链接,并在插件需要加载时使用自定义的类加载器对依赖链接和磁盘中对应的依赖包进行按需加载,提高了插件加载的效率,减小了插件安装时内存占用空间。



技术特征:

1.一种程序插件加载方法,其特征在于,所述加载方法包括:

2.如权利要求1所述的一种程序插件加载方法,其特征在于,所述步骤s3包括:

3.如权利要求1所述的一种程序插件加载方法,其特征在于,所述插件描述信息包括插件名称、插件图标、插件类别、插件位置信息和/或插件版本。

4.如权利要求1所述的一种程序插件加载方法,其特征在于,所述步骤s6包括:

5.如权利要求1所述的一种程序插件加载方法,其特征在于,所述步骤s6之前还包括:

6.一种程序插件加载装置,其特征在于,包括:插件安装模块、元数据库和插件装载及运行模块;

7.如权利要求6所述的一种程序插件加载装置,其特征在于,所述插件安装模块包括:

8.如权利要求6所述的一种程序插件加载装置,其特征在于,所述插件装载及运行模块包括:

9.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器中存储有计算机程序,所述处理器用于调用所述计算机程序,以执行权利要求1-5中任一项所述的程序插件加载方法中的操作步骤。

10.一种计算机程序,其特征在于,当所述程序被调用时,用于执行如权利要求1-5中任一项所述的程序插件加载方法中的操作步骤。


技术总结
本发明提供了一种程序插件加载方法、装置、计算机设备及计算机程序,其中,加载方法包括:S1:定义一种应用程序的插件包和依赖包;S2:完成插件包和依赖包的部署;S3:建立插件和对应依赖包之间的依赖链接;S4:在每个插件位置下建立插件描述文件,插件描述文件中包含插件描述信息;S5:将所述插件描述信息上传到元数据库中;S6:在应用程序运行时,使用自定义的类加载器对目标插件进行按需加载。本发明解决了现有技术中JAVA插件加载过程中容易出现依赖包冲突的问题,并能够有效的节省磁盘空间。

技术研发人员:刘波,郑浩,何达斌,文华,翁明,陈栋,肖川东
受保护的技术使用者:重庆市通信建设有限公司
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1