技术共享

Spring——自动装配Bean

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

· 自动装配是Spring满足bean依赖的一种方式

· Spring会在上下文中自动寻找,并自动给bean装配属性


在Spring中有三种装配的方式:

1. 在xml中显示配置

2. 在java中显示配置

3. 隐式的自动装配bean【重要】


测试

记得创建Cat、Dog、People类

  1. public class MyTest {
  2. @Test
  3. public void test1(){
  4. ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
  5. People people = context.getBean("people", People.class);
  6. people.getDog().shout();
  7. people.getCat().shout();
  8. }
  9. }

ByName自动装配

  1. <!--
  2. byName:会自动在容器上下文中查找,和自己对象set方法后面的值对应的beanid
  3. -->
  4. <bean id="people" class="com.yang.pojo.People" autowire="byName">
  5. <property name="name" value="辰阳"/>
  6. </bean>

ByType自动装配

  1. <bean class="com.yang.pojo.Cat"/>
  2. <bean class="com.yang.pojo.Dog"/>
  3. <!--
  4. byType:会自动在容器上下文中查找,和自己对象属性类型相同的bean(必须保证类型全局唯一,如有两个狗就会报错)(可以省略id)
  5. -->
  6. <bean id="people" class="com.yang.pojo.People" autowire="byType">
  7. <property name="name" value="辰阳"/>
  8. </bean>

小结:

·  byname时,需要保证所有的bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致

·  bytype时,需要保证所有的bean的class唯一,并且这个bean需要和自动注入的属性的类型一致