Spring-context-ConfigurationClassBeanDefinitionReader類

 2023-10-15 阅读 23 评论 0

摘要:關于BeanDefinitionReader接口特性請看這里 注:ConfigurationClassBeanDefinitionReader修飾符是default,所以在我們自己的類中是提示不出來的,只在和它同包的其他類中使用 切記,這個類并不是BeanDefinitionReader接口的子類,雖然名字很像

關于BeanDefinitionReader接口特性請看這里

注:ConfigurationClassBeanDefinitionReader修飾符是default,所以在我們自己的類中是提示不出來的,只在和它同包的其他類中使用

切記,這個類并不是BeanDefinitionReader接口的子類,雖然名字很像,以及里面的方法很像,這點,在ConfigurationClassBeanDefinitionReader類注釋中有說明,它說BeanDefinitionReader接口是對Resource的操作,而ConfigurationClassBeanDefinitionReader是對configuration class的操作,而且BeanDefinitionReader很早很早之前就出現了

作用:將ConfigurationClass(模型類)變成BeanDefinition,注冊到BeanDefinitionRegistry當中
方法解釋
1.loadBeanDefinitionsForConfigurationClass
根據模型類的條件不同,所以轉換成不同的BeanDefinition
2.loadBeanDefinitionsFromRegistrars

private void loadBeanDefinitionsFromRegistrars(Map<ImportBeanDefinitionRegistrar, AnnotationMetadata> registrars) {for (Map.Entry<ImportBeanDefinitionRegistrar, AnnotationMetadata> entry : registrars.entrySet()) {// entry.getValue()會獲取到AspectJAutoProxyRegistrar類// 該類會判斷EnableAspectJAutoProxy注解,若存在該注解,則創建AnnotationAwareAspectJAutoProxyCreatorentry.getKey().registerBeanDefinitions(entry.getValue(), this.registry);}}

此處會判斷ConfigurationClass類上是否有@EnableAspectJAutoProxy注解,如果有,則創建AnnotationAwareAspectJAutoProxyCreator類并且注入到容器中

時機:在ConfigurationClassPostProccessor的接口方法processConfigBeanDefinitions中,該方法中不但new了ConfigurationClassBeanDefinitionReader,并且調用ConfigurationClassBeanDefinitionReader的方法loadBeanDefinitions

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/137063.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息