Autowired注解,简化了我们去配置文件配置bean的过程。在启动Spring IOC时,容器自动装配一个AutowiredAnnotationBeanPostProcesspr后置处理器,当容器在扫描中扫描到@Autowired时,就会在IOC容器中自动查找所需要的Bean对象;
在使用@Autowired时,容器首先会查找对应类型的Bean对象,当查询结果是一个时,就直接进行装配。当查询到的结果不是唯一的时候,@Autowired则会根据名称进行查询,当结果为空时,则会抛出异常。
@Autowired的使用分为以下几种:
1.用在字段上
@Autowired用在字段上时,表示Spring会对该字段进行匹配赋值,在Spring容器中查找,找到能匹配到该字段的对象,进行赋值,找不到就抛出异常。
2.用在set方法上
@Autowired用在字段上时,会找到该set()方法对应的字段,然后进行赋值。
3.用在构造方法上
@Autowired用在构造方法上时,会找到该构造方法对应的所有字段,然后进行赋值。
@Autowired的自定装配分为: byType和byName
byType:当容器内存在一个和指定的属性类型相同的bean时,那么将和这个属性自动的进行装配,当存在多个该类型的bean,将会抛出异常。
byName:是根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配,当我们根据byName进行自动装配时,就需要使用到@Qualifier注解来手动指定一个beanid来进行装配。
@Autowired默认使用byType按类型注入,但对于多个实现类情况下,@Autowired又支持byName进行识别。
版权声明:本文为m0_66947503原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。