Spring注解@DependsOn解析 焦点播报 - 综合 -

当前位置:首页  >  综合  > 正文

Spring注解@DependsOn解析 焦点播报

Spring注解@DependsOn解析 焦点播报
2023-04-24 06:03:48 来源:脚本之家


(资料图)

目录
介绍注解详情使用源码解析总结

介绍

今天要分享得是Spring的@DependsOn注解,对于@DependsOn,我们从它的名称里面就能看出意思是“依赖于”,那么在Spring中,它的作用就是解决Bean的创建依赖,比如某个Bean在创建的时候依赖另外一个bean,所以需要另外一个bean先创建,然后再创建自己。

注解详情

@DependsOn注解可以标注在类上和方法上面,只有一个属性value,它是一个数组,表示依赖的bean名称的数组,可以指定一个或者多个。

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DependsOn {

	String[] value() default {};

使用

如下,在DependsOnBeanA上标注了@DependsOn注解,那么DependsOnBeanA需要在Bean dependsOnBeanB创建完成之后才能创建自己,这里value的值为bean的名称,如果没有对bean设置名称,那么就为首字母为小写的类名。

@Component
@DependsOn(value = {"dependsOnBeanB"})
public class DependsOnBeanA {

}

源码解析

spring扫描到所有的标有@Component(@Service,@Repository等注解本质就是@Component)的类和标有@Bean的方法后,会进行处理,这里,它会判断是否标注有@DependsOn,如果标注有,则会设置BeanDefinition的dependsOn,设置其依赖的bean,如下在AnnotationConfigUtils注解工具类中源码如下。

static void processCommonDefinitionAnnotations(AnnotatedBeanDefinition abd, AnnotatedTypeMetadata metadata) {
    //省略若干代码
		AnnotationAttributes dependsOn = attributesFor(metadata, DependsOn.class);
		if (dependsOn != null) {
			  abd.setDependsOn(dependsOn.getStringArray("value"));
		}
	}

上面是在注册bean元数据阶段,注册元数据阶段只是组装好bean之间的依赖,然后在真正创建bean的时候,才会进行判断,如下在AbstractBeanFactory类中的doGetBean中,会从RootBeanDefinition中取出dependsOn的值,不为空则进行bean的创建,创建bean的过程和其他bean的创建过程也是一样的。

protected  T doGetBean(String name, @Nullable Class requiredType, @Nullable Object[] args, boolean typeCheckOnly)
            throws BeansException {
        RootBeanDefinition mbd = getMergedLocalBeanDefinition(beanName);
        // Guarantee initialization of beans that the current bean depends on.
        String[] dependsOn = mbd.getDependsOn();
        if (dependsOn != null) {
            for (String dep : dependsOn) {
                if (isDependent(beanName, dep)) {
                    throw new BeanCreationException(mbd.getResourceDescription(), beanName,
                            "Circular depends-on relationship between "" + beanName + "" and "" + dep + """);
                }
                    registerDependentBean(dep, beanName);
                try {
                    getBean(dep);
                } catch (NoSuchBeanDefinitionException ex) {
                    throw new BeanCreationException(mbd.getResourceDescription(), beanName,
                            """ + beanName + "" depends on missing bean "" + dep + """, ex);
                }
            }
        }
    }

从上面可以看出,其实还是比较简单,主要就是判断是否有依赖的bean,如果有就先创建依赖的bean,没有的话就往下执行。

总结

上面我们对@DependsOn作了简单的介绍,对其的使用方法进行简单示例,也对核心源码进行分析,还是比较简单,他们都是bean创建过程中的一些增强,spring的创建过程还是比较简单,但是就是因为它的功能点比较多,所以在创建过程中会有各种扩展,各种判断,所以就会变得很复杂,不过它的主线还是比较清晰的,在进行分析的时候,可以先从主线进行分析,然后再慢慢去看主线分出去的逻辑。

到此这篇关于Spring注解@DependsOn解析的文章就介绍到这了,更多相关Spring注解@DependsOn内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

标签:

(责任编辑:news01)
世界速讯:鸭肉适合什么季节吃 什么季节吃鸭肉最好

世界速讯:鸭肉适合什么季节吃 什么季节吃鸭肉最好

1、秋季吃鸭肉最好。鸭肉性凉,具有健脾益气,滋阴养胃,利水消肿的功效。2、鸭肉的脂肪是最健康的。鸭肉富
04-22 20:33:27
中国第一大县,人口为何都回来了?

中国第一大县,人口为何都回来了?

中国第一大县,人口为何都回来了?
04-22 20:27:50
龚绮百科_龚绮-当前要闻

龚绮百科_龚绮-当前要闻

1、爱情最美好的时光,就是那患得患失的阶段。2、你知道他喜欢你,你也喜欢他。3、打情骂俏,暧暧昧昧的日
04-22 19:33:15
大手笔!温州拿下这些重大项目!_全球热消息

大手笔!温州拿下这些重大项目!_全球热消息

大手笔!温州拿下这些重大项目!
04-22 19:27:58
运用监督执纪四种形态让什么成为常态什么_运用监督执纪四种形态让成为常态|全球今日讯

运用监督执纪四种形态让什么成为常态什么_运用监督执纪四种形态让成为常态|全球今日讯

1、鎺ㄨ繘鍏ㄩ潰浠庝弗娌诲厷鐨勬垬鐣ラ珮搴︼紝鍐嶆寮鸿皟瑕佹妸鎻¤繍鐢ㄥソ鐩戠潱鎵х邯鈥滃洓绉嶅舰
04-22 18:53:46
张兆艺老公 张兆艺

张兆艺老公 张兆艺

今天来聊聊关于张兆艺老公,张兆艺的文章,现在就为大家来简单介绍下张兆艺老公,张兆艺,希望对各位小伙伴
04-22 18:19:40
关键词排名提升工具下载_关键词排名提升工具

关键词排名提升工具下载_关键词排名提升工具

1、关键词排名提升工具是一款辅助类软件,对于排名并没有提高的作用。本文到此分享完毕,希望对大家有所帮助
04-22 17:59:23
今日聚焦!外汇局重磅发声:当前A股估值低,投资前景良好!

今日聚焦!外汇局重磅发声:当前A股估值低,投资前景良好!

来源|中国证券报文|彭扬国家外汇管理局副局长、新闻发言人王春英4月21日在国新办新闻发布会上表示,中国国
04-22 17:58:53
全球今日讯!老鹰险胜绿军1-2 特雷-杨32+6+9塔图姆29+10

全球今日讯!老鹰险胜绿军1-2 特雷-杨32+6+9塔图姆29+10

老鹰险胜绿军1-2特雷-杨32+6+9塔图姆29+10,塔图姆,特雷-杨,老鹰,波士顿凯尔特人,斯玛特,绿军
04-22 17:04:04
世界要闻:华润有巢REIT“季考”成绩出炉 一季报多项运营指标超预期

世界要闻:华润有巢REIT“季考”成绩出炉 一季报多项运营指标超预期

截止4月20日,已有24家基金公司旗下基金公布一季报。做为机构重点关注的公募REITS,据华夏基金华润有巢REIT
04-22 16:31:51
火字旁的字大全简单-火字旁的字大全

火字旁的字大全简单-火字旁的字大全

1、?如果宝宝是五行缺火的,想必家长在为宝宝起名字时肯定想过这个问题。2、除了灯、灿、灵等这些常见的字
04-22 15:55:38
最新:福州公安破获一起网络销售假酒案 涉案金额100多万元

最新:福州公安破获一起网络销售假酒案 涉案金额100多万元

[新闻页-台海网]向微信好友买酒损失14万元受害者报警,警方顺藤摸瓜抓获假酒制售团伙据福州晚报报道近日,
04-22 15:27:44
微速讯:她要有秦海璐一半的觉悟,也不至于嫁入豪门,沦为笑话

微速讯:她要有秦海璐一半的觉悟,也不至于嫁入豪门,沦为笑话

继子对王艳这个后妈更是没有好脸色,认为她是老爸找来的保姆,处处找茬,甚至传言王艳被他狂扇巴掌,只能默
04-22 15:23:06
厦门小吃街在哪个位置_厦门小吃街在哪里 每日关注

厦门小吃街在哪个位置_厦门小吃街在哪里 每日关注

1、中山路的局口街!。本文到此分享完毕,希望对大家有所帮助。
04-22 14:43:36
育心语0421 | 「爱」的初心只有在合适的表达方式下才会产生爱的结果-环球微速讯

育心语0421 | 「爱」的初心只有在合适的表达方式下才会产生爱的结果-环球微速讯

AreYouOk?心理咨询已像早餐和睡眠一样正在成为很多人关照自我健康的一部分认识自己是一件漫长的,足以持续
04-22 14:25:37
自治区发布2022年度知识产权运用与促进典型案例|当前滚动

自治区发布2022年度知识产权运用与促进典型案例|当前滚动

自治区发布2022年度知识产权运用与促进典型案例
04-22 14:03:58
【活动专题】鸿运高照至臻雀境即将下线,雀神衣橱十连必得永久!

【活动专题】鸿运高照至臻雀境即将下线,雀神衣橱十连必得永久!

各位麻友看过来~雀神秘境活动即将下线雀神衣橱活动迎来全新福利發仔这就带大家一起详细了解一下吧!雀神秘
04-22 13:55:44
业绩不被认可?一心堂跌停,东方证券、财信证券唱多遭打脸?

业绩不被认可?一心堂跌停,东方证券、财信证券唱多遭打脸?

财报披露期,投资者的关注焦点聚集在业绩上。4月21日,连锁药店龙头一心堂低开低走,盘中触及跌停板。截至
04-22 13:31:02
招聘会丨上海日报社招聘新媒体编辑、视频运营等岗位

招聘会丨上海日报社招聘新媒体编辑、视频运营等岗位

上海日报社上海日报(ShanghaiDaily)于1999年10月1日创刊,是中国内地第一份地方性彩色英文日报。创刊20多
04-22 13:10:07
法国知名钢琴家理查德·克莱德曼:喜欢中国的音乐

法国知名钢琴家理查德·克莱德曼:喜欢中国的音乐

(记者顾时宏)“我知道中国有很多脍炙人口的音乐,非常好听。中新社记者顾时宏摄  理查德·克莱德曼说...
04-22 12:46:30
华硕发布全球最薄笔记本:仅1cm厚-天天要闻

华硕发布全球最薄笔记本:仅1cm厚-天天要闻

ZenbookS13OLED是一款很轻薄的笔记本电脑,厚度仅1cm,重量仅1kg。华硕(ASUS)ZenBookFlipS1313 3英寸4KOL
04-22 12:12:08
什么叫a股b股_什么叫A股B股_热推荐

什么叫a股b股_什么叫A股B股_热推荐

1、什么A股,B股,H股?什么是红筹股,蓝筹股?A股,B股,H股是按英文字母作为代称的股票分类。2、A股是以
04-22 12:06:42
速讯:泰勒-希罗接受右手手术,预计至少缺席6周

速讯:泰勒-希罗接受右手手术,预计至少缺席6周

今日热火官方宣布,球队后卫泰勒-希罗接受右手手术,预计至少缺席6周。在对阵雄鹿的首轮第一场比赛中,希罗
04-22 11:22:28
北京丰台持续推进“拉网式”安全生产大排查大整治工作 热头条

北京丰台持续推进“拉网式”安全生产大排查大整治工作 热头条

新京报讯据北京丰台官微消息,4月21日,丰台区安全生产和火灾隐患大排查大整治工作持续深入,区领导带队到
04-22 11:14:23
Python面向对象编程-三大特性-继承-多重继承 当前速讯

Python面向对象编程-三大特性-继承-多重继承 当前速讯

多重继承是指一个子类继承多个父类,而这些父类本身也继承自其它类。在Python中,多重继承可以实现复杂的继
04-22 10:28:25
每日观察!快讯2023-04-21 23:24:27

每日观察!快讯2023-04-21 23:24:27

4月21日电,尼日利亚计划在6月份运送10万桶 日的Egina原油,而5月份的修正量为6 5万桶 日,这是自2019年初
04-22 09:56:06
广州百程签证电话(百程网签证)-天天百事通

广州百程签证电话(百程网签证)-天天百事通

1、这你担心的多了,其实挺省的,我当时去新加坡就是在这办的。2、费用很合理透明,就是网站上说的,使馆收
04-22 09:42:54
爱看头评 | 实名曝光,让“色狼”瑟瑟发抖

爱看头评 | 实名曝光,让“色狼”瑟瑟发抖

近日,有网友在浙江政务服务网站上看到,由杭州市公安局公开的一批行政处罚结果信息中,一批猥亵女性或侵犯
04-22 09:33:56
单人旁怎么打出来的 单人旁怎么打出来

单人旁怎么打出来的 单人旁怎么打出来

今天来聊聊关于单人旁怎么打出来的,单人旁怎么打出来的文章,现在就为大家来简单介绍下单人旁怎么打出来的
04-22 09:22:59
桃子是热性还是凉性_桃子的作用 观点

桃子是热性还是凉性_桃子的作用 观点

欢迎观看本篇文章,小勉来为大家解答以上问题。桃子是热性还是凉性,桃子的作用很多人还不知道,现在让我们
04-22 08:48:21

为您推荐

精彩推送