· 自动装配是Spring满足bean依赖的一种方式
· Spring会在上下文中自动寻找,并自动给bean装配属性
在Spring中有三种装配的方式:
1. 在xml中显示配置
2. 在java中显示配置
3. 隐式的自动装配bean【重要】
测试
记得创建Cat、Dog、People类
public class MyTest {
@Test
public void test1(){
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
People people = context.getBean("people", People.class);
people.getDog().shout();
people.getCat().shout();
}
}
ByName自动装配
<!--
byName:会自动在容器上下文中查找,和自己对象set方法后面的值对应的beanid
-->
<bean id="people" class="com.yang.pojo.People" autowire="byName">
<property name="name" value="辰阳"/>
</bean>
ByType自动装配
<bean class="com.yang.pojo.Cat"/>
<bean class="com.yang.pojo.Dog"/>
<!--
byType:会自动在容器上下文中查找,和自己对象属性类型相同的bean(必须保证类型全局唯一,如有两个狗就会报错)(可以省略id)
-->
<bean id="people" class="com.yang.pojo.People" autowire="byType">
<property name="name" value="辰阳"/>
</bean>
小结:
· byname时,需要保证所有的bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致
· bytype时,需要保证所有的bean的class唯一,并且这个bean需要和自动注入的属性的类型一致