@Autowired的几个使用细节

Posted dehigher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Autowired的几个使用细节相关的知识,希望对你有一定的参考价值。

1、使用@Autowired的当前类也必须由spring容器托管(打@Coponent、@Controller、@Service 、@repository)

2、不管是public 和  private 修饰的字段都可以自动注入

3、默认情况下,使用@Autowired注解的属性一定要被装配,如果在容器中找不到该类型的bean注入,就会报错。如果允许不被装配就可以将@Autowired的required属性为false

4、@Autowired 是基于类型的注入,如果当前类型属性在容器中只有一个Bean, 那么属性名不限制,但一般建议遵循类名首字母小写的规则‘

5、如果当前属性类型在容器中有个多个Bean,那么必须要通过属性名 或者 @Qualifier 指定Bean name

6、@Autowired 可以打在XXX[] 、List<XXX>上 ,此时会将容器中所有XXX类型的bean 都注入进去、且属性名没有约束,但是注意可以通过@Qualifier指定注入指定beanName的bean,属性名是没有约束作用的

7、@Autowired可以打在Map<String,XXX>上,此时所有XXX类型的bean都会被注入 ,beanName 为key ,对象为value,但是注意可以通过@Qualifier指定注入指定beanName的bean,属性名是没有约束作用的

 

以上是关于@Autowired的几个使用细节的主要内容,如果未能解决你的问题,请参考以下文章

IDEA mybatis 在service无法使用@Autowired , could not autowire

Java--使用@Autowired报错Could not autowire. No beans of ‘XX‘ type found.

Spring-----注解实现自动装配(自动匹配属性类型) @Autowired 和 autowire

autowire注解需要加修饰符吗

Springboot使用@Autowired注入Mapper接口编译错误“Could not autowire. No beans of ‘UserMapper‘ type found.“

Injection of autowired dependencies failed; autowire 自动注入失败,测试类已初始化过了Spring容器。