技术新讯 > 计算推算,计数设备的制造及其应用技术 > 服务端spring工程启动方法及装置与流程  >  正文

服务端spring工程启动方法及装置与流程

  • 国知局
  • 2024-07-31 23:14:11

本发明涉及计算机,具体涉及一种服务端spring工程启动方法及装置。

背景技术:

1、spring工程启动过程中需要对所有组件的bean进行加载,这个过程也称为组件bean的初始化。目前,spring采用线性加载初始化组件bean的方式,但是这种方式在组件数量巨大时会导致整个加载过程耗时非常长。

技术实现思路

1、本说明书一个或多个实施例描述了一种服务端spring工程启动方法及装置,能够有效解决现有技术存在的spring工程启动耗时长的问题。

2、第一方面,提供一种服务端spring工程启动方法,该方法包括:

3、根据目标spring工程内组件之间的依赖关系,将所述目标spring工程内的所有组件进行分层处理,得到具有依赖关系的多个组件层,并将应用的功能组件放置在上层组件层,所述功能组件之间不具有依赖关系;

4、根据所述组件层之间的依赖关系,串行加载所述组件层;

5、针对所述上层组件层,通过子容器对该上层组件层内的功能组件进行并行加载;

6、将加载完毕的所有组件合并到根容器中,并对所述根容器中所有应用的业务功能进行接口暴露,完成所述目标spring工程的启动。

7、作为第一方面所述方法的一种可选实施方式,所述方法还包括:

8、在底层组件层中设置组件仓库,所述组件仓库中创建了所有组件的bean;

9、基于所述多个组件层之间的依赖关系,将上层组件层的子容器的父容器设置为所述组件仓库;当上层组件层的子容器所加载的所述组件依赖于下层组件层中的组件时,通过向上查找的方式在所述父容器中获取对应组件的bean。

10、作为第一方面所述方法的一种可选实施方式,根据目标spring工程内的组件之间的依赖关系,将所述组件进行分层处理,具体包括:

11、将所述目标spring工程内的组件分为框架组件层、基础应用组件层、上层应用组件层、spring mvc组件层和任务组件层;其中,所述基础应用组件层部署所述应用的基础功能组件,所述基础功能组件之间相互独立;所述上层应用组件层中部署所述组件的业务功能组件,所述业务功能组件之间相互独立。

12、具体的,根据所述组件层之间的依赖关系,逐层加载所述组件层,具体包括:

13、对所述框架组件层、所述基础应用组件层、所述上层应用组件层和所述springmvc组件层逐层进行加载,并在加载所述spring mvc组件层的同时,异步加载所述任务组件层。

14、更具体的,在加载所述框架组件层、所述基础应用组件层、所述上层应用组件层、所述spring mvc组件层逐层、所述任务组件层时,具体包括:

15、在加载所述框架组件层时,对所述框架组件层中的各个组件进行串行加载;

16、在加载所述基础应用组件层时,对所述基础应用组件层中的各个组件进行并行加载;

17、在加载所述上层应用组件层时,对所述上层应用组件层中的各个组件进行并行加载;

18、在加载所述spring mvc组件层时,对所述spring mvc组件层中的各组件进行串行加载;

19、在加载所述任务组件层时,对所述任务组件层中的各组件进行异步加载。

20、第二方面,提供一种服务端spring工程启动装置,该装置包括:

21、数据获取模块,配置为获取目标spring工程;

22、分层处理模块,配置为根据目标spring工程内组件之间的依赖关系,将所述目标spring工程内的所有组件进行分层处理,得到具有依赖关系的多个组件层,并将应用的功能组件放置在上层组件层,所述功能组件之间不具有依赖关系;

23、加载模块,配置为根据所述组件层之间的依赖关系,串行加载所述组件层;针对所述上层组件层,通过子容器对该上层组件层内的功能组件进行并行加载; 将加载完毕的所有组件合并到根容器中,并对所述根容器中所有应用的业务功能进行接口暴露,完成所述目标spring工程的启动。

24、作为第二方面所述装置的一种可选实施方式,所述分层处理模块具体用于在底层组件层中设置组件仓库,所述组件仓库中创建了所有所述组件的bean;基于所述多个组件层之间的依赖关系,将上层组件层的子容器的父容器设置为所述组件仓库。

25、作为第二方面所述装置的一种可选实施方式,所述分层处理模块具体用于将所述目标spring工程内的组件分为框架组件层、基础应用组件层、上层应用组件层、spring mvc组件层和任务组件层;其中,所述基础应用组件层部署所述应用的基础功能组件,所述基础功能组件之间相互独立;所述上层应用组件层中部署所述组件的业务功能组件,所述业务功能组件之间相互独立。

26、第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行上述的服务端spring工程启动方法。

27、第四方面,提供了一种电子设备,包括:

28、至少一个存储器,用于存储程序;

29、至少一个处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行上述的服务端spring工程启动方法。

30、有益效果:本发明根据spring工程内的组件之间的依赖关系对组件进行分层处理,从而能够根据各组件层内组件之间的依赖关系情况来逐层优化组件加载方式,具体体现在将每个应用的独立功能组件放置在上层组件层,并采用并行加载的策略加载,而对于不同组件层,则根据组件层之间的依赖关系进行串行加载。通过此方式,能够显著提升spring工程启动速度。

技术特征:

1.一种服务端spring工程启动方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,还包括:

3.如权利要求1所述的方法,其特征在于,根据目标spring工程内的组件之间的依赖关系,将所述组件进行分层处理,具体包括:

4.如权利要求3所述的方法,其特征在于,根据所述组件层之间的依赖关系,逐层加载所述组件层,具体包括:

5.如权利要求4所述的方法,其特征在于,还包括:

6.一种服务端spring工程启动装置,其特征在于,包括:

7.如权利要求6所述的装置,其特征在于,所述分层处理模块具体用于在底层组件层中设置组件仓库,所述组件仓库中创建了所有所述组件的bean;基于所述多个组件层之间的依赖关系,将上层组件层的子容器的父容器设置为所述组件仓库。

8.如权利要求6所述的装置,其特征在于,所述分层处理模块具体用于将所述目标spring工程内的组件分为框架组件层、基础应用组件层、上层应用组件层、spring mvc组件层和任务组件层;其中,所述基础应用组件层部署基础应用的功能组件,所述基础应用的功能组件之间相互独立;所述上层应用组件层中部署上层应用的功能组件,所述上层应用的功能组件之间相互独立。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至5任一所述的方法。

10.一种电子设备,其特征在于,包括:

技术总结本发明提出一种服务端spring工程启动方法及装置,该方法根据spring工程内的组件之间的依赖关系对组件进行分层处理,从而能够根据各组件层内组件之间的依赖关系情况来逐层优化组件加载方式,具体包括将每个应用的独立功能组件放置在上层组件层,并采用并行加载的策略加载,而对于不同组件层,则根据组件层之间的依赖关系进行串行加载。通过此方式,能够显著提升spring工程启动速度。技术研发人员:高杨,张俊,管赟,李晓宇受保护的技术使用者:南京柠云网络科技有限公司技术研发日:技术公布日:2024/7/29

本文地址:https://www.jishuxx.com/zhuanli/20240730/196574.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。