微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring5 -- 学习笔记 - 3.IoC容器-操作Bean管理xml自动装配

Spring5 – 学习笔记 - 3.IoC容器

   1、xml方式注入的自动装配

     创建员工类。

/*
    员工类
 */
public class Employee {
    private Department department;

    public void setDepartment(Department department){
        this.department=department;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "department=" + department +
                '}';
    }
}

     创建部门类。

/*
    部门类
 */
public class Department {

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

     xml文件代码,这里autowire属性的值设置的是,byType,根据属性类型注入。

    <!--xml的方式的自动注入
        使用bean标签的autowire属性,autowire常用的俩个值:
            byName,根据类成员属性名称注入,类的属性名称需要和bean的id值相同
            byType,根据类成员属性类型注入,该类型的bean只能有一个,如果是多个就会找不到
    -->
    <bean id="employee1" class="com.tt.bean.Employee" autowire="byType">

    </bean>

    <bean id="department" class="com.tt.bean.Department"></bean>

     测试代码

    @Test
    public void test1(){
        ApplicationContext context=new ClasspathXmlApplicationContext("bean1.xml");
        Employee employee =context.getBean("employee1", Employee.class);
        System.out.println(employee);
    }

     测试结果。

在这里插入图片描述

     xml文件代码2,这里将autowire的属性值设置为,byName,根据属性名称注入。

<!--xml的方式的自动注入
        使用bean标签的autowire属性,autowire常用的俩个值:
            byName,根据类成员属性名称注入,类的属性名称需要和bean的id值相同
            byType,根据类成员属性类型注入,该类型的bean只能有一个,如果是多个就会找不到
    -->
    <bean id="employee1" class="com.tt.bean.Employee" autowire="byName">

    </bean>

    <bean id="department" class="com.tt.bean.Department"></bean>

     测试结果,发现效果一样。

在这里插入图片描述

     但是自动注入时,需要注意:
       byName,根据类成员属性名称注入,类的属性名称需要和bean的id值相同;
       byType,根据类成员属性类型注入,该类型的bean只能有一个,如果是多个就会找不到。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。