Spring注解-AutoWired-自动装配详解

自动装配的规则–AutoWired

注解自动装配-AutoWired :

  1. 首先使用自动装配属性类型进行自动装配(ByType)
    – 若没有bean的全限定类名(class)与此属性类型匹配,报错
    – 若有且仅有一个bean的全限定类名与此属性类型匹配,自动装配
    – 若有多个bean的全限定类名与此属性类型匹配,转2
     
  2. 当容器中有多个匹配属性类型的bean时,使用id匹配属性的名字!(ByName)
    – 当有bean的id属性名匹配时,自动装配
    – 当没有bean的id和属性名匹配时,报错
     
  3. 如果指定了@Qualifier(value=“xxx”),就会寻找类型匹配,并且id=xxx的
    – 只要不满足类型匹配、id=xxx中的一条就会报错!!
     
  4. @Autowired(required = false)
    – required 默认为True,不可赋null值。设置为False后可以赋null值。
     
  5. 经测试Resource标签和Autowired标签基本是相同的
    – 都是先根据Type判断是否有唯一匹配Bean,有就自动装配。一个匹配Type都没有直接报错!(即使有匹配的name,也要求必须Type匹配!)
    – 多个匹配会在根据ID进行查找唯一匹配类型。
    – 指定了name的Resource,和指定了Qualifier的Autowired一样,只有Type和Name都匹配才会装配成功,否则报错!!

Guess you like

Origin blog.csdn.net/qq_39304851/article/details/109385455