spring能否什么类型的bean都能自动注入?

能注入拿到正确的值吗?

答案:不能,这四个都有值,除了beanFactory是DefaultListableBeanFactory,其他钱都是AnnotationConfigApplicationContext这个值,并不是自己的值

spring能否什么类型的bean都能自动注入?_第1张图片

执行结果:

org.springframework.beans.factory.support.DefaultListableBeanFactory#registerResolvableDependency

spring能否什么类型的bean都能自动注入?_第2张图片

我们来分析源码:

org.springframework.beans.factory.support.DefaultListableBeanFactory#findAutowireCandidates

spring能否什么类型的bean都能自动注入?_第3张图片
  1. 获取所有BeanFactory的bean,发现没有,

  1. 遍历四大忽略的类

spring能否什么类型的bean都能自动注入?_第4张图片

直接返回该结果:

spring能否什么类型的bean都能自动注入?_第5张图片

总结:1.寻找四大忽略自动注入的bean,肯定是没有的

2.进行遍历四大忽略的注解类型,从hashmap总获取对应的value

spring能否什么类型的bean都能自动注入?_第6张图片
  1. 然后返回该值进行自动注入。

spring能否什么类型的bean都能自动注入?_第7张图片

四大忽略的类型分别对应的value已经标注。

你可能感兴趣的:(spring)