应用程序的启动处理方法、装置、设备及存储介质与流程

文档序号:37448927发布日期:2024-03-28 18:32阅读:12来源:国知局
应用程序的启动处理方法、装置、设备及存储介质与流程

本技术涉及计算机,尤其涉及一种应用程序的启动处理方法、装置、设备及存储介质。


背景技术:

1、spring框架是一个开源的java开发框架,具备ioc(依赖注入)和aop(面向切面)的特点。基于spring框架的应用程序的程序功能实现过程中,需生成一系列的bean对象,通过操作这些bean对象来实现具体的功能。其中,bean是指在spring容器中,构成应用程序主干并由spring ioc容器管理的具有类的属性和方法的java对象。基于此,一切spring bean都存储在spring容器内,该容器负责对象的创建、初始化、配置和销毁。

2、现有技术中,该容器在对应用程序进行启动时,需要对该应用程序对应的bean进行初始化处理,但是由于该初始化处理是采用单线程串行的初始化处理方式,因此导致该应用程序启动时间很长,严重影响了用户体验和程序开发效率。


技术实现思路

1、本技术提供一种应用程序的启动处理方法、装置、设备及存储介质,用以解决应用程序的启动处理效率低的问题。

2、第一方面,本技术提供一种应用程序的启动处理方法,包括:

3、在监测待启动的应用程序启动时,确定所述待启动的应用程序中是否包括并行的应用组件;

4、若确定所述待启动的应用程序中包括并行的应用组件和非并行的应用组件,则基于所述并行的应用组件的数量,配置并行处理队列和并行处理线程池;

5、将所述并行的应用组件存放至所述并行处理队列中,并触发所述并行处理线程池,对所述并行处理队列中的并行的应用组件进行并行初始化处理,以获取每个并行的应用组件的初始化结果;

6、依次对所述非并行的应用组件进行初始化处理,以获取每个非并行的应用组件的初始化结果;

7、对所述每个并行的应用组件的初始化结果以及所述每个非并行的应用组件的初始化结果进行监控,并根据监控的结果,确定所述待启动的应用程序是否启动成功。

8、在一种可能的设计中,所述在监测待启动的应用程序启动时,确定所述待启动的应用程序中是否包括并行的应用组件,包括:调用beanpostprocessor类,识别获取所述待启动的应用程序中的每个应用组件的标签,以基于所述应用组件的标签确定所述待启动的应用程序中是否包括并行的应用组件;所述标签包括:并行标签和非并行标签。

9、在一种可能的设计中,所述将所述并行的应用组件存放至所述并行处理队列中,包括:分别获取每个并行的应用组件对应的初始化方法;基于每个并行的应用组件的初始化方法,生成所述并行的应用组件对应的aop代理类;基于所述aop代理类生成所述并行的应用组件的aop代理对象,并存放至所述并行处理队列中,所述aop代理对象包括:实例化的并行的应用组件以及并行应用组件的初始化方法。

10、在一种可能的设计中,所述将所述并行的应用组件存放至所述并行处理队列中,包括:分别获取每个并行的应用组件对应的初始化方法和并行应用组件的触发机制;基于每个并行的应用组件的初始化方法,生成所述并行的应用组件对应的aop代理类;根据所述并行的应用组件的触发机制,有序地基于所述aop代理类生成所述并行的应用组件的aop代理对象,并存放至所述并行处理队列中,所述aop代理对象包括:实例化的并行的应用组件以及并行应用组件的初始化方法。

11、在一种可能的设计中,所述触发机制包括:主动触发机制和被动触发机制。

12、在一种可能的设计中,所述触发所述并行处理线程池,对所述并行处理队列中的并行的应用组件进行并行初始化处理,包括:根据所述aop代理对象,确定所述并行处理队列中的每个并行的应用组件对应的初始化方法;触发所述并行处理线程池,基于每个并行的应用组件对应的初始化方法,对所述实例化的并行的应用组件进行并行初始化处理。

13、在一种可能的设计中,所述对所述每个并行的应用组件的初始化结果以及所述每个非并行的应用组件的初始化结果进行监控,包括:通过应用上下文applicationcontext的生命周期以及contextrefreshedevent事件,监控所述非并行的应用组件的初始化结果;若全部所述非并行组件的初始化结果都为已完成,调用继承applicationlistener类的并行的应用组件的初始化结果的监听器,监控所述每个并行的应用组件的初始化结果。

14、在一种可能的设计中,所述通过应用上下文applicationcontext的生命周期以及contextrefreshedevent事件,监控所述非并行的应用组件的初始化结果包括:在所述应用上下文applicationcontext的生命周期为刷新阶段时,监控是否接收到所述contextrefreshedevent事件;若接收到所述contextrefreshedevent事件,则确定全部所述非并行组件的初始化结果都为已完成。

15、第二方面,本技术提供一种应用程序的启动处理装置,包括:

16、确定模块,用于在监测待启动的应用程序启动时,确定所述待启动的应用程序中是否包括并行的应用组件;

17、配置模块,用于若确定所述待启动的应用程序中包括并行的应用组件和非并行的应用组件,则基于所述并行的应用组件的数量,配置并行处理队列和并行处理线程池;

18、处理模块,用于将所述并行的应用组件存放至所述并行处理队列中,并触发所述并行处理线程池,对所述并行处理队列中的并行的应用组件进行并行初始化处理,以获取每个并行的应用组件的初始化结果;

19、所述处理模块,还用于依次对所述非并行的应用组件进行初始化处理,以获取每个非并行的应用组件的初始化结果;

20、所述确定模块,还用于对所述每个并行的应用组件的初始化结果以及所述每个非并行的应用组件的初始化结果进行监控,并根据监控的结果,确定所述待启动的应用程序是否启动成功。

21、第三方面,本技术提供一种应用程序的启动处理设备,包括:

22、处理器,存储器,通信接口;

23、所述存储器用于存储所述处理器的可执行指令;

24、其中,所述处理器配置为经由执行所述可执行指令来执行如上第一方面所述的应用程序的启动处理方法。

25、第四方面,本技术提供一种可读存储介质,包括:其上存储有计算机程序,所述计算机程序被处理器执行时实现执行如上第一方面所述的应用程序的启动处理方法。

26、本技术提供的应用程序的启动处理方法、装置、设备及存储介质,通过在监测待启动的应用程序启动时,确定待启动的应用程序中是否包括并行的应用组件,若确定待启动的应用程序中包括并行的应用组件和非并行的应用组件,则基于并行的应用组件的数量,配置并行处理队列和并行处理线程池,将并行的应用组件存放至并行处理队列中,并触发并行处理线程池,对并行处理队列中的并行的应用组件进行并行初始化处理,以获取每个并行的应用组件的初始化结果,依次对非并行的应用组件进行初始化处理,以获取每个非并行的应用组件的初始化结果,对所述每个并行的应用组件的初始化结果以及所述每个非并行的应用组件的初始化结果进行监控,并根据监控的结果,确定待启动的应用程序是否启动成功,其中,在确定待启动的应用程序中包括并行的应用组件之后,确定应用程序中的并行应用组件,并配置并行应用组件的并行处理队列和并行处理线程池,对确定的并行应用组件进行并行初始化处理,提高了应用程序中应用组件初始化的效率,进一步提高了应用程序的启动处理效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1