System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 类循环依赖的处理方法、电子设备及可读介质技术_技高网

类循环依赖的处理方法、电子设备及可读介质技术

技术编号:41302670 阅读:4 留言:0更新日期:2024-05-13 14:49
本申请提供了一种类循环依赖的处理方法及电子设备及可读介质。该方法包括:获取待检测项目的源代码文件,对所述源代码文件进行遍历,生成以类文件作为叶子结点的树状图;基于所述树状图,获取每个所述叶子结点的模块信息和深度信息;获取所述待检测项目的各个类文件的调用关系,基于所述调用关系和所述叶子结点的模块信息,生成调用关系有向图;基于所述叶子结点的所述模块信息和所述深度信息,检测并去除不符合预设类文件调用规则的调用关系。本申请用于处理待检测项目中的循环依赖问题,提高待检测项目的健壮性和稳定性。

【技术实现步骤摘要】

本申请涉及软件开发,具体涉及一种类循环依赖的处理方法、电子设备及可读介质


技术介绍

1、在java应用开发中,spring是当前最流行的开源的、轻量级的应用程序框架,被广泛使用于构建企业级java应用程序。spring使用ioc(inversionofcontrol,控制反转)容器来管理和控制对象的创建、依赖关系以及生命周期。ioc的一种实现方式就是依赖注入(di,dependencyinjection),即容器会将一个对象所需的依赖注入到该对象中。

2、这样会导致spring中存在循环依赖问题,在使用spring构造项目时,项目代码中的循环依赖会导致应用启动时类对象无法正确初始化,从而导致应用启动失败。

3、现有的spring框架仅在应用启动时才检测服务间的循环依赖问题并兼容了服务间的循环依赖,虽然互相依赖的各个类对象最终能够完成实例化和初始化,应用能够正常启动运行,但是其中的循环依赖问题依然存在,依然会在后续应用启动时产生消极影响。


技术实现思路

1、本申请的一个目的在于提出一种类循环依赖的处理方法及电子设备,用于处理待检测项目中的循环依赖问题,提高待检测项目的健壮性和稳定性。

2、根据本申请实施例的一方面,提供了一种类循环依赖的处理方法,包括:

3、获取待检测项目的源代码文件,对所述源代码文件进行遍历,生成以所述源代码文件中的类文件作为叶子结点的树状图;

4、获取所述树状图中各个叶子结点的模块信息和深度信息,所述模块信息包括所述叶子结点所在的功能模块,所述深度信息表示所述叶子结点的结点深度;

5、根据各个叶子结点对应的类文件的调用关系,生成调用关系有向图;

6、基于各个叶子结点的模块信息和深度信息,检测并去除所述调用关系有向图中不符合预设类文件调用规则的循环调用关系。

7、根据本申请实施例的一方面,提供了一种电子设备,包括:

8、一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各种可选实现方式中提供的方法。

9、根据本申请实施例的一方面,提供了一种计算机可读介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述各种可选实现方式中提供的方法。

10、根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。

11、在本申请实施例中,获取待检测项目的源代码文件,对源代码文件进行遍历,生成以类文件作为叶子结点的树状图,获取树状图中各个叶子结点的模块信息和深度信息,根据各个叶子结点所在的功能模块间的调用关系和各个叶子结点对应的类文件的调用关系,生成调用关系有向图,其中,调用关系有向图以叶子结点为第一顶点,以叶子结点间的调用关系为第一顶点间的有向边,以叶子结点所在的功能模块为第二顶点,以功能模块间的调用关系作为第二顶点间的有向边,根据各个叶子结点的模块信息和深度信息,检测并去除调用关系有向图中不符合预设类文件调用规则的循环调用关系,快速检测出待检测项目中类文件的循环依赖情况,提高待检测项目的健壮性以及稳定性。

12、本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。

13、应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

本文档来自技高网...

【技术保护点】

1.一种类循环依赖的处理方法,其特征在于,包括:

2.根据权利要求1所述的类循环依赖的处理方法,其特征在于,所述调用关系有向图包括第一调用关系有向图和第二调用关系有向图;

3.根据权利要求2所述的类循环依赖的处理方法,其特征在于,所述基于所述叶子结点对应的类文件的调用关系,生成所述第一调用关系有向图中第一顶点间的第一边和所述第二调用关系有向图中第二顶点间的第二边,包括:

4.根据权利要求3所述的类循环依赖的处理方法,其特征在于,所述基于各个叶子结点的模块信息和深度信息,检测并去除所述调用关系有向图中不符合预设类文件调用规则的循环调用关系,包括:

5.根据权利要求4所述的类循环依赖的处理方法,其特征在于,所述根据所述第一顶点调用环对应的叶子结点的深度信息,去除所述第一顶点调用环中不符合预设类文件调用规则的循环调用关系,包括:

6.根据权利要求3所述的类循环依赖的处理方法,其特征在于,所述基于各个叶子结点的模块信息和深度信息,检测并去除所述调用关系有向图中不符合预设类文件调用规则的循环调用关系,包括:

7.根据权利要求6所述的类循环依赖的处理方法,其特征在于,所述根据所述第二顶点调用环对应的功能模块的权重信息,去除所述第二顶点调用环中不符合预设类文件调用规则的循环调用关系,包括:

8.根据权利要求1所述的类循环依赖的处理方法,其特征在于,所述获取待检测项目的源代码文件,对所述源代码文件进行遍历,生成以所述源代码文件中的类文件作为叶子结点的树状图,包括:

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

10.一种计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至8中任意一项所述的类循环依赖的处理方法。

...

【技术特征摘要】

1.一种类循环依赖的处理方法,其特征在于,包括:

2.根据权利要求1所述的类循环依赖的处理方法,其特征在于,所述调用关系有向图包括第一调用关系有向图和第二调用关系有向图;

3.根据权利要求2所述的类循环依赖的处理方法,其特征在于,所述基于所述叶子结点对应的类文件的调用关系,生成所述第一调用关系有向图中第一顶点间的第一边和所述第二调用关系有向图中第二顶点间的第二边,包括:

4.根据权利要求3所述的类循环依赖的处理方法,其特征在于,所述基于各个叶子结点的模块信息和深度信息,检测并去除所述调用关系有向图中不符合预设类文件调用规则的循环调用关系,包括:

5.根据权利要求4所述的类循环依赖的处理方法,其特征在于,所述根据所述第一顶点调用环对应的叶子结点的深度信息,去除所述第一顶点调用环中不符合预设类文件调用规则的循环调用关系,包括:

...

【专利技术属性】
技术研发人员:顾璠江旻杨杨徐为恺
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:

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

1