• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    Spring中如何配置bean

    在講解Spring中bean的配置之前,首先需要學習兩個概念:IOC(反轉控制)和DI(依賴注入)。IOC(Inversion of Control)的思想是反轉資源獲取的方向,傳統的資源查找方式要求組件向容器發起請求查找資源,而應用了IOC之后,則是容器主動地將資源推送給它所管理的組件,組件所要做的僅是選擇一種合適的方式來接收資源。DI(Dependency Injection)是IOC的另一種表現形式,即組件以一些預先定義好的方式(例如:setter方法)接收來自如容器的資源注入。本文主要講解基于XM

    工具/材料

    Spring Tool Suite 3.9.1.RELEASE

    操作方法

    • 01

      我們在XML文件中配置bean時,bean的id用于標識容器,是唯一的。若id沒有指定,則Spring自動將全限定名作為bean的名字。id可以指定多個名字,名字之間可以用逗號、分號或空格分隔。class為類的全類名,由包名和類名組成。我們使用xml文件配置bean時,要求實體類必須要有一個無參構造方法,若沒有則會啟動報錯。

    • 02

      屬性注入方式,是通過setter方法為bean注入屬性。我們在bean的配置文件中使用property元素中的name屬性標識需要注入的bean屬性,然后在類中使用setXxx()的方法將屬性注入,因此name屬性的值必須和setter方法中大寫字母開頭的名字要一致。如使用setName2()方法,則配置文件中name屬性的值必須為name2。

    • 03

      上述步驟是通過屬性注入依賴的方式,下面我們講解通過構造器注入依賴的方式。通過構造方法來注入bean的屬性值或依賴對象,它保證了Bean實例在實例化后就可以使用 。構造器注入在<constructor-arg>元素里聲明屬性,沒有name屬性,按照構造方法默認的順序或指定順序來注入。如下圖所示,可以看到屬性注入的順序完全和構造方法傳參的順序一致。

    • 04

      我們編寫測試代碼,在測試代碼的main()方法中獲取Cat對象,并打印輸出該對象。ApplicationContext在初始化上下文時就實例化所有單例的的Bean,用于獲取Cat對象。打印輸出默認的是調用Cat類的toString()方法,因此在創建類時需要重寫toString()方法。

    • 05

      接下來我們在使用構造器注入時添加index屬性用于標識注入的順序,如下圖所示。

    • 06

      使用構造器注入屬性值可以指定參數的位置和參數的類型,用以區分重載的構造器。上述步驟指定了參數的位置,下面我們再為Cat方法創建一個有參構造,傳入4個參數,如下圖所示,而相應的bean的配置增加了type屬性,用于標識字段的類型。

    • 07

      我們在使用構造器注入時,不僅可以用value屬性,也可以使用value子元素。使用雙標記的value子元素,中間包裹的位置填入相應的值即可,如下圖所示。

    • 08

      如果我們在使用xml配置bean時,需要注入的屬性中含有特殊字符,那么直接將特殊字符寫在配置文件中是錯誤的。若字面值包含特殊字符,可以使用<![CDATA[]]>把字面值包裹起來,基本數據類型及其封裝類、String等類型都可以采取字面值注入的方式。

    • End

    特別提示

    只有字面值包含特殊字符,才使用<![CDATA[]]>包裹起來。

    • 發表于 2017-11-04 00:00
    • 閱讀 ( 1052 )
    • 分類:電腦網絡

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆