自动装配

一:bena的属性赋值,只能是我们手动赋值吗?应该有静态和动态两中赋值方式;

二:自动装配是spring满足bean依赖的一种方式,spring会在上下文中自动搜索然后,自动给bean的属性赋值;

三:三种方式:

  一:xml

  二:java

  三:隐式  byName:bean的id名称要和set注入名称一致,byType:类型一致即可,id可以省略;

@Data
public class Cat {
    public void eat() {
        System.out.println("老鼠");
    }
}
@Data
public class Dog {
    public void eat() {
        System.out.println("狗肉");
    }
}
@Data
public class Person {
    private String name;
    private Cat cat;
    private Dog dog;
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="cat" class="com.nbg.pojo.Cat"></bean>

    <bean id="dog" class="com.nbg.pojo.Dog"></bean>
   <!--byName:会自动在容器上下文中搜索,看有没有和对象属性set方法后面值相同的的bean id,即:bean id → cat = setCat 则注入成功--> 
   <!--byType:会自动在容器上下文中搜索,看有没有和对象属性类型形同的bean属性类型,即:cat → cat,dog → dog-->
<bean id="person" class="com.nbg.pojo.Person" autowire="byName"> <property name="name" value="张三"/> </bean> </beans>
原文地址:https://www.cnblogs.com/NBG-SDL/p/14108797.html