[发明专利]一种Spring Bean组件ID冲突的解决方法和装置在审

专利信息
申请号: 202110650352.1 申请日: 2021-06-10
公开(公告)号: CN115469845A 公开(公告)日: 2022-12-13
发明(设计)人: 蓝磊芳;蔡博文 申请(专利权)人: 远光软件股份有限公司
主分类号: G06F8/30 分类号: G06F8/30;G06F9/445
代理公司: 北京天达知识产权代理事务所有限公司 11386 代理人: 刘镜
地址: 519085 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 spring bean 组件 id 冲突 解决方法 装置
【权利要求书】:

1.一种Spring Bean组件ID冲突的解决方法,其特征在于,包括如下步骤:

执行命名生成器中的扫描程序,获取项目目录下所有编译后文件;

遍历所述编译后文件,获取文件目录和文件名,将所述文件目录和所述文件名拼装得到的全限定类名放入子集中,以及,将所述文件名及其对应的子集组成键值对放入类信息集合中;其中,每次遍历将相同文件名对应的全限定类名放入同一个子集;

遍历所述类信息集合,取出长度大于1的子集放入黑名单集合中;

Spring加载Bean组件,执行命名生成器中的命名程序,取出当前Bean组件的全限定类名,当所述Bean组件的全限定类名存在于所述黑名单集合中,且不存在于白名单集合中时,根据预设规则生成Bean组件ID。

2.根据权利要求1所述的Spring Bean组件ID冲突的解决方法,其特征在于,所述命名生成器继承AnnotationBeanNameGenerator类,包括所述扫描程序和所述命名程序,其中:

所述扫描程序存储在静态块中,当创建所述命名生成器实例时自动执行所述扫描程序,用来扫描所有编译后文件,生成所述黑名单集合和所述白名单集合;

所述命名程序重写buildDefaultBeanName方法,用于识别Bean组件的ID是否冲突,对冲突的Bean组件根据所述预设规则生成Bean组件ID,其中所述预设规则是“beanId_全限定类名”。

3.根据权利要求2所述的Spring Bean组件ID冲突的解决方法,其特征在于,所述命名生成器用于对XML配置方式和注解方式定义的组件进行扫描和命名,其中XML配置方式包括:context:component-scan/,jpa:repositories/,注解方式包括:@ComponentScan。

4.根据权利要求3所述的Spring Bean组件ID冲突的解决方法,其特征在于,对所述XML配置方式,当Spring解析配置文件中的context和jpa标签时,根据spring.handlers文件中的配置,分别找到与标签命名空间相同的context标签处理器和jpa标签处理器,在context标签处理器和jpa标签处理器中的初始化方法中创建context扫描解析器和jpa扫描解析器,根据所述context扫描解析器和所述jpa扫描解析器中设置的命名生成器,创建所述命名生成器实例。

5.根据权利要求3所述的Spring Bean组件ID冲突的解决方法,其特征在于,对所述注解方式,当Spring根据@ComponentScan扫描组件时,调用实现内置接口的动态组件注册器,在所述动态组件注册器中获取组件工厂后置处理器,创建所述命名生成器实例。

6.根据权利要求1-5任一项所述的Spring Bean组件ID冲突的解决方法,其特征在于,所述黑名单集合中还包括通过读取预置的黑名单文件获得的黑名单;所述黑名单文件和所述白名单文件存放在项目META-INF文件夹下,文件内容支持全限定类名和末尾是*的通配符形式。

7.根据权利要求1所述的Spring Bean组件ID冲突的解决方法,其特征在于,所述所有编译后文件,包括class文件和jar文件,对所述jar文件,通过遍历取出其中所包含的class文件。

8.根据权利要求1所述的Spring Bean组件ID冲突的解决方法,其特征在于,所述根据预设规则生成Bean组件ID时,将当前Bean组件的全限定类名放入命名组件集合中,全部执行完毕后,将根据所述黑名单集合统计得到的冲突Bean组件总数量、根据所述命名组件集合统计得到的命名Bean组件数量和明细,输出在日志和/或文件中。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于远光软件股份有限公司,未经远光软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110650352.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top