ioc的实现,就是不用我们自己实现new对象,在传进来,直接自动转配,注解,比如@Autowarid,没有new,就是定义一下,下面直接使用,就是自动交给ioc容器管理,我就直接用,注意我这个类也是注入的,调用被调用都要被spring统一管理。
xml配置,全在xml里比较繁琐
<beans>
<bean id="dog" class="com.kuang.pojo.Dog"/>
<bean id="cat" class="com.kuang.pojo.Cat"/>
<bean id="user" class="com.kuang.pojo.User">
<property name="cat" ref="cat"/>
<property name="dog" ref="dog"/>
<property name="str" value="qinjiang"/>
</bean>
</beans>
注解方便:
context:annotation-config/><--注解支持-->
<bean id="dog" class="com.kuang.pojo.Dog"/>
<bean id="cat" class="com.kuang.pojo.Cat"/>
<bean id="user" class="com.kuang.pojo.User"/>
默认的byName查找:将查找其类中所有的set方法名,例如setCat,获得将set去掉并且首字母小写的字符串,即cat。
1.@Autowired
- @Autowired是按类型自动转配的,不支持id匹配。
- 需要导入 spring-aop的包!
- @Autowired(required=false) 说明:false,对象可以为null;true,对象必须存对象,不能为null。
- @Qualifier
- @Autowired是根据类型自动装配的,假如xml的名字有多个,要按名查找,加上@Qualifier则可以根据byName的方式自动装配
- @Qualifier不能单独使用。
2.@Resource
- @Resource如有指定的name属性,先按该属性进行byName方式查找装配;
- 其次再进行默认的byName方式,也就是set后的名字进行装配;
- 如果以上都不成功,则按byType的方式自动装配。