Spring在XML配置自动装配(byName和byType的区别)

时间:2025-04-01 11:52:43

Bean的自动装配
●自动装配是Spring满足bean依赖一种方式! 
●Spring会在上下文中自动寻找,并自动给bean装配属性! 


在Spring中有三种装配的方式
1.在xmI中显示的配置
2.在java中显示配置
3.隐式的自动装配bean(重要)

自动装配有两种类型(byName和byType)

所用pojo:

  1. public class Dog {
  2. public void bark(){
  3. ("wang");
  4. }
  5. }
  1. public class Cat {
  2. public void bark(){
  3. ("miao");
  4. }
  5. }
  1. public class People {
  2. private Dog dog;
  3. private Cat cat;
  4. private String name;

}//提供get和set方法

 

:会自动在容器上下文中查找,和自己对象set方法后面的值对应的bean!

  1. <bean id="cat" class=""></bean>
  2. <bean id="dog" class=""></bean>
  3. <bean id="people" class="" autowire="byName">
  4. <property name="name" value="芈"></property>
  5. </bean>

利用byName进行自动装配时,注册的bean的id一定要和实体类的属性相同,在上面的pojo中,people拥有的是dog和cat,那么这两个bean的注册的id必须为dog和cat,不然无法自动装配。

:会自动在容器上下文中查找,和自己对象属性类生后面的值对应的bean!

  1. <bean id="cat" class=""></bean>
  2. <bean id="Dog" class=""></bean>
  3. <bean id="people" class="" autowire="byType">
  4. <property name="name" value="芈"></property>
  5. </bean>

利用byType进行自动装配时,注册的bean的id可以随便取,只要class唯一且对应就可以进行自动装配

 

小结:
的时候,需要保证所有bean的id唯一, 并且这个bean需要和自动注入的属性的set方法的值一致!
的时候, 需要保证所有bean的class唯一 ,并且这个bean需要和自动注入的属性的类型一致!