已解决
@Resource注解的原理
来自网友在路上 167867提问 提问时间:2023-10-24 13:52:11阅读次数: 67
最佳答案 问答题库678位专家为你答疑解惑
1.CommonAnnotationBeanPostProcessor是主要逻辑类
2.CommonAnnotationBeanPostProcessor实现接口InstantiationAwareBeanPostProcessor
在bean的实例化过程中,执行populateBean方法中会调用InstantationAwareBeanPostProcessor的postProcessProperties方法
3.CommonAnnotationBeanPostProcessor还实现了MergedBeanDefinitionPostProcessor接口
在bean的实例化过程中,执行doCreateBean方法中会调用MergedBeanDefinitionPostProcessor的postProcessMergedBeanDefinition方法,会填充RootBeanDefinition
4.底层调用逻辑
(1)如果指定@Resource中的name值,则调用beanFactory.getBean(String name,Class<T> requiredType)
(2)如果不指定@Resource中的name值,则按字段名称在beanFactory中搜索存不存在相应的beanDefinition,
不存在则按类型查找,调用ListableBeanFactory的getBeanNamesForType()方法,存在多个则要去找@Primary标记的对象,否则报错NoUniqueBeanDefinitionException
存在,则就按字段名称依赖查询,调用beanFactory.getBean(String name,Class<T> requiredType)
5.@PostConstruct,@PreDestory也是通过CommonAnnotationBeanPostProcessor实现的
查看全文
99%的人还看了
相似问题
- Kotlin学习——kt里的集合,Map的各种方法之String篇
- Office文件在线预览大全-Word文档在线预览的实现方法-OFD文档在线预览-WPS文件在线预览
- composer切换全局镜像源的方法
- Python通过selenium调用IE11浏览器报错解决方法
- 测试用例的设计方法(全):正交实验设计方法|功能图分析方法|场景设计方发
- Java8新特性 ----- Lambda表达式和方法引用/构造器引用详解
- C#中抽象类、抽象方法和接口暨内联临时变量的精彩表达
- ChatGLM2 大模型微调过程中遇到的一些坑及解决方法(更新中)
- 类方法,静态方法和实例方法的区别及应用场景
- 【链表的说明、方法---顺序表与链表的区别】
猜你感兴趣
版权申明
本文"@Resource注解的原理":http://eshow365.cn/6-23382-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 4种实用的制作URL 文件的方法
- 下一篇: 【C语言】用函数实现模块化程序设计