1 自动注入,分为三种:
<!-- 1.1 根据属性名称自动完成setter注入,类中的属性名和id名称相同则自动完成注入 -->
<bean id="s" class="com.zhaoling.dependency.SunWuKong" autowire="byName"></bean>
<!--1.2.根据类中属性的类型,在容器中找到同一类型的唯一组件,完成自动注入-->
<bean id="s" class="com.zhaoling.dependency.SunWuKong" autowire="byType"></bean>
<!--1.3.用构造注入完成自动注入,先找构造器中与组件的id相同的,用构造注入完成自动注入;如果没有找到,则找容器中同一类型的唯一组件,用构造注入完成注入.-->
<bean id="s" class="com.zhaoling.dependency.SunWuKong" autowire="constructor"></bean>
2.1@Autowired
第一步:在Spring容器中添加启用注解的节点
<context:annotation-config></context:annotation-config>
第二步:在需要注入的属性上面,添加注解@Autowired即可
例如:
@Autowired
private IYaoGuai yg;
该方式是先按照byType到容器中找唯一类型的组件,如果没找到则按byName找和属性名字相同的组件
注解的位置:可以放在setter方法上面,构造函数上面(必须是构造注入),放在属性上面
如果byType找不到唯一,byName找不到同名的组件,可以用注解@Qualifier进行限定到一个组件上,
如:
@Autowired
@Qualifier("y2")
private IYaoGuai yg;
2.2 @Resource注解:先按byType,找不到唯一再按byName,如果还找不到可以微调@Resource(name="y1"),name指定组件的id值
网友评论