1. 程式人生 > 其它 >Spring學習筆記(八)xml自動裝配

Spring學習筆記(八)xml自動裝配

技術標籤:java學習

1、什麼是自動裝配

(1)根據指定裝配規則(屬性名稱或者屬性型別),Spring自動將匹配的屬性值進行注入

2、自動裝配示例:

bean1.xml程式碼如下:

自動裝配需要設定autowire有兩個值:byName和byType,byName需要設定一個id與類屬性名稱相同的bean

如果設定autowire值為byType則需要相同的型別的bean只能有一個

<?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 http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--實現自動裝配bean標籤屬性autowire,配置自動裝配
    autowire屬性常用兩個值,
    byName根據屬性名稱注入,注入值bean的id值和類屬性名稱一樣
    byType根據屬性型別注入-->
    <bean id="emp" class="autowire.Emp" autowire="byName">
    </bean>
    <bean id="dept" class="autowire.Dept"></bean>
</beans>

Dept程式碼如下:

package autowire;

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

public class Emp {
    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);
    }
}

MainTest:

import autowire.Emp;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainTest {
    @Test
    public void test()
    {
        ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
        Emp emp=context.getBean("emp",Emp.class);
        System.out.println(emp);
    }
}

測試結果如下: