Spring框架学习:IOC操作Bean管理-xml自动装配(八)

1、什么是自动装配
(1)根据指定装配规则(属性名称或者属性类型),Spring自动将匹配的属性值进行注入
2、演示自动装配过程
(1)根据属性名称自动注入

代码:

Dept:

public class Dept {

    @Override
    public String toString() {
        return "Dept{}";
    }
}

Emp:

public class Emp {
//自动装配是 查找的属性名:dept
    private Dept dept;

    public void setDept(Dept dept) {
        this.dept = dept;
    }

    @Override
    public String toString() {
        return "Emp{" +
                "dept=" + dept +
                '}';
    }

    public void test(){
        System.out.println(dept);
    }
}

byName

    <!--实现自动装配
        bean标签属性 autowire , 配置自动装配
        autowire两个值:
            byName 根据属性名称注入,注入值bean的id和类属性名称一样
            byType 根据属性类别注入 找Dept类型
            -->
    <bean id="emp" class="com.spring5.autowire.Emp" autowire="byName">
        <!--普通注入属性方式-->
<!--        <property name="dept" ref="dept"></property>-->
    </bean>

    <bean id="dept" class="com.spring5.autowire.Dept">

    </bean>

byType:多个类型时,无法确定需要的bean。所以相同类型的bean,不能定义多个

    <!--实现自动装配
        bean标签属性 autowire , 配置自动装配
        autowire两个值:
            byName 根据属性名称注入,注入值bean的id和类属性名称一样
            byType 根据属性类别注入 找Dept类型
            -->
    <bean id="emp" class="com.spring5.autowire.Emp" autowire="byType">
        <!--普通注入属性方式-->
<!--        <property name="dept" ref="dept"></property>-->
    </bean>

    <bean id="dept" class="com.spring5.autowire.Dept">

    </bean>

junit测试:

    @Test
    public void test5(){

        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean5.xml");
        Emp emp = applicationContext.getBean("emp", Emp.class);

        System.out.println(emp);
    }

测试结果:

Emp{dept=Dept{}}
暂无评论

发送评论 编辑评论


				
上一篇
下一篇