1. 程式人生 > 實用技巧 >IOC介面Bean屬性注入XML

IOC介面Bean屬性注入XML

  IOC介面Bean屬性注入XML:

一:什麼是Bean管理:

  1. Bean管理指的是;兩個操作:

  2. Spring建立物件

  3. Spring注入屬性

二:基於XML方式建立物件

<bean id="user" class="com.spring_test.User"></bean>

  1)在配置檔案中,使用bean標籤,標籤裡面新增對應屬性,就可以實現物件的建立

  2)bean中常用的屬性:

    1. id屬性:唯一標識,就是你建立的物件名是什麼,id就填什麼

    2. class屬性:類全路徑(包含類路徑)

    3. name屬性:其實跟id一樣,就是name可以新增一些特殊符號

注意:建立物件的時候,預設也是執行無引數構造方法建立的

三:基於XML方式注入屬性:

(1)DI:依賴注入,就是注入屬性

    1)第一種注入方式:使用set方法注入,在XML中使用property完成對屬性的注入,依次類推,舉一反三

Book類:

public class Book{
    private String bname;
    public void setBname(String bname){
        this.bname=bname;
    }
}

xml配置注入以及建立:

<!--建立Book物件建立-->
<bean 
id="book" class="com.spring_test"> <!--使用property完成屬性注入 name:類裡面屬性名稱 value:向屬性注入的值 --> <property name="bname" value="hanxiao"></property> </bean>

注意:如何獲取配置建立的物件

Book book=content.getBean("book",Book.class);
//這裡是將Bean返回後的物件轉換程class的形式

    2)第二種注入方式:通過有參構造進行XML注入

    也就是在上面的Book中加一個帶有引數的建構函式就好了

XML配置檔案配置:

<bean id="book" class="com.spring_test">
    <!--
        比如這裡有只有一個有參構造,注入dname
        使用constructor-arg標籤來獲取有參構造的引數以及注入的值
        name:建構函式中的屬性名稱
        index:有參構造中引數的個數次序
        value:屬性名稱的值
下面這兩句話是等效的
    -->
    <constructor-arg name="dname" value="myname"></constructor-arg>
    <constructor-arg index="1" value="myname"></constructor-arg>
</bean>

    3)第三種XML注入方式:p名稱空間注入

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       <!--這一步就是進行了一個對p的約束宣告-->
       xmls:p="http://www.w3.org/2001/XMLSchema-instance/p"
<!--然後就可以在bean建立物件的時候在後面直接傳入引數就好-->
<bean id="hello" class="com.spring_test.Hello" p:bname="hanxiao"></bean>

</beans>

  主要步驟:在約束宣告中加上對p的宣告,然後再建立的物件後面使用p:引數=“引數值”