1. 程式人生 > >Spring 配置檔案中 元素 屬性 說明

Spring 配置檔案中 元素 屬性 說明

<beans /> 元素

該元素是根元素。
<bean /> 元素的屬性
default-init // 是否開啟懶載入。預設為 false default-dependency-check // 預設為 none default-autowire // 是否自動轉配。預設為 no <bean /> 元素的子元素 <description /> // 可選 <import /> // 包含 resource 屬性,引用其他配置檔案 <bean /> // 定義 bean

<bean /> 元素中的屬性

<bean /> 元素中的屬性
id  
// Java bean 在 BeanFactory 中的唯一識別符號。程式碼中通過 BeanFactory獲取。JavaBean 例項化時,需要以此作為索引名稱。 name // 如果沒有配置id,name屬性預設為識別符號;如果配置了 id,則此時 name 為別名。 class // Java Bean 的全限定類名,即真正介面的實現類。如果不配置 id 和 name,那麼可以根據 applicationContext.getBean(Class) 獲取物件。 scope // bean 的作用域,取值為 singleton、prototype、request、session、application。
singleton // bean 的作用域(建立模式是 prototype 還是 singleton )。singleton(單例模式)如果設為 true,只維護次 Java Bean 的一個例項;反之,如果設為 false,BeanFactory 每次都將建立一個新的例項返回。預設為 true init-method // 初始化方法,此方法將在 BeanFactory 建立 JavaBean 例項後,在嚮應用層返回引用之前執行。一般用於一些資源的初始化工作。在 JavaBean 中建立 init 方法,再新增屬性 init-method=“init” 就行。 destroy-method //
銷燬方法。此方法將在 BeanFactory 銷燬的時候執行,一般用於資源釋放。與 init-method 用法類似。 depends-on // Bean 依賴關係,一般情況下無需設定,Spring 會根據情況組織各個依賴關係的構建工作。只有在某些特定情況下,如 JavaBean 中的某些靜態變數需要進行初始化,通過 depends-on 指定其依賴關係可以保證在此 Bean 載入之前,首先對 depends-on 所指的資源進行載入。 autowire // 自動裝配,用於簡化 spring 配置。取值 byname、bytype、constructor。 <bean /> 元素中的子元素 <constructor-arg /> // 指定構造器引數

 

<constructor-arg /> 元素

當被指定的方法是無參方法時,不需要使用該屬性。

當被指定的方法有一個引數時,可以直接在 <constructor-arg /> 中巢狀一個 <value />元素或者 <ref />元素等,用來指定相應的引數。

當被指定的方法有多個引數時,需要通過 index 方法指定引數順序。某些情況下,index 可以省略,spring 會根據引數的型別進行自動匹配。

<!-- 當有一個引數時 -->
<bean id="***" class="***">
  <constructor-arg>
    <!-- 直接指定 value 值 -->
    <value type="java.lang.String">hello</value>
    <!-- 通過 ref 指定已經宣告的 bean 的值 -->
    <ref bean="***" />
  </constructor-arg>
</bean>

<!-- 當有多個引數時 -->
<bean id="***" class="***">
  <bean>
    <constructor-arg index="0" type="java.lang.String" value="hello">
    <constructor-arg index="1" type="java.lang.String" value="hello">
  </bean>
</bean>

<!-- list 引數傳入 -->
<constructor-arg>
  <list>
    <value>value1</value>
    <value>value2</value>
  </list>
</constructor-arg>

<!-- set 引數傳入 -->
<constructor-arg>
  <set>
    <value>value1</value>
    <value>value2</value>
  </set>
</constructor-arg>

<!-- map 引數傳入 -->
<constructor-arg>
  <map>
    <entry key="key1" value="value1" />
    <entry key="key2" value="value2" />
  </map>
</constructor-arg>

<property /> 元素用於指定屬性

<property /> 元素可作為 <bean /> 元素的子元素

name:指定 <property /> 所在 bean 的類中的引數

value:賦給改引數的值

ref:指定 bean 配置檔案中的 bean 的名稱

<bean id="person" class="service.Person">
    <!-- 控制器呼叫setAxe方法,將容器中的axe bean作為傳入的引數 -->
    <!-- 此處的 name 是指定 Person 類中的引數,ref 是指 bean 配置檔案中的 bean 名稱 -->
    <property name="axe" ref="axe"></property>
</bean>