程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Spring中Bean的配置,SpringBean配置

Spring中Bean的配置,SpringBean配置

編輯:JAVA綜合教程

Spring中Bean的配置,SpringBean配置


原創作品,可以轉載,但是請標注出處地址http://www.cnblogs.com/V1haoge/p/5859556.html

 

1、Bean的配置一般都在XML文件中進行配置

2、Bean相關包為:org.springframework.beans和org.springframework.context

3、spring的Bean管理的實現是依靠大量的反射來實現的。

4、Bean定義配置

4.1 Bean標簽

  ▶id屬性:用於指定Bean的名稱,在Bean被依賴時使用,在獲取Bean時使用等

  ▶name屬性:用於指定Bean的別名

  ▶class屬性:用於指定Bean的來源,即創建要創建的Bean的class類(需要全限定名)

  ▶singleton屬性:用於指定當前Bean的創建模式,若值為true表示為單例模式,false表示原型模式(prototype)

  ▶depends-on屬性:用於指定當前Bean的依賴Bean,強制指定的Bean在當前Bean初始化之前先完成初始化

  ▶init-method屬性:用於指定當前Bean的初始化方法,在Bean實例創建好後,首先會調用其指定名稱的方法

  ▶destory-method屬性:用於指定當前Bean的銷毀方法,在Bean即將被銷毀之前會自動調用該屬性指定的方法

  ▶lazy-init屬性:用於指定當前Bean的初始化時間,若值為true表示在初次調用時才會自動創建實例並初始化,false表示在IoC容器創建的時候就會完成創建和初始化

  ▶autowire屬性:用於指定當前Bean的依賴關系的自動注入方式,其有五個值:

    ▷byName:表示通過id名稱來自動匹配;

    ▷byType:表示通過class指定的類型來自動裝配;

    ▷constructor:表示使用構造函數的參數進行自動裝配(參數的類型匹配);

    ▷autodetect:表示自動進行選擇匹配方式,首先進行constructor自動裝配,若不存在構造方法則使用byType方式進行自動裝配;

    ▷no:表示不適用自動裝配。

  ▶dependency-check屬性:用於指定Bean的依賴檢查模式,檢查依賴關系是否完整,與自動裝配合用,其有四個值:

    ▷simple:表示針對基本類型、字符串、集合進行依賴檢查

    ▷object:表示對引用對象進行依賴檢查

    ▷all:表示對基本類型、字符串、集合、引用對象全部進行依賴檢查

    ▷none:表示不進行任何依賴檢查,默認情況。

  Bean示例:

 

 1 <?xml version=”1.0”encoding=”utf-8”?> 
 2 <!Doctype beans PUBLIC “-//SPRING//DTD BEAN//EN”
 3 “http://www.springframework.org/dtd/spring-beans.dtd”>
 4 <beans>
 5   <bean id=”helloworld” class=”com.dh.spring.HelloWorld” singleton=”true” depends-on=”date” lazy-init=”false” init-mathod=”init” destory-method=”destory”/>
 6   <bean id=”date” class=”java.util.Date”/>
 7 </beans>

4.2 property標簽

  ▶name屬性:用於指定屬性的名稱,與類中的set方法後方的名稱一致

  ▶value屬性:用於指定該屬性的值,用於指定的值是基本類型、字符串類型

  ▶ref屬性:用於指定該屬性的值,用於指定的值是引用對象類型(即其他的Bean),ref後面的值為另一個Bean的id

  ▶value標簽:用於指定屬性的值,類型為基本類型、字符串類型,值為標簽內的文本內容,可以使用null值將屬性的值設置為null

  ▶ref標簽:用於指定屬性的值,類型為引用對象類型,值為其屬性的值,其屬性有以下三種:

    ▷local屬性:用於指定依賴本地Bean實例,即同一XML文件中定義的Bean

    ▷bean屬性:用於指定依賴的Bean實例,可以是不同XML文件中的Bean

    ▷parent屬性:用於指定依賴的Bean實例,可以是當前BeanFactory或ApplicationContext的父BeanFactory或ApplicationContext中的Bean

  以下是針對集合的標簽

  ▶list標簽:用於聲明該依賴對象為一個list集合,其下用value和ref標簽來指定list中的各值(基本、字符串、對象等)

    ▷value標簽:用於指定list集合中的值,指定的值為基本類型、字符串類型,值為文本內容

    ▷ref標簽:用於指定list集合中的引用值,指定的值為其他的對象Bean,其用法與之前property標簽下的ref標簽的用法相同

  ▶set標簽:用於聲明該依賴對象為一個set集合,其用法與list標簽相同。

  ▶map標簽:用於聲明該依賴對象為一個map集合,其下用entry標簽來聲明一個鍵值對

    ▷entry標簽:用於聲明map集合下的一個鍵值對,其下用key屬性指明鍵,value/ref標簽指明值

      →key屬性:用於指明鍵值對中的鍵,它一般為字符串

      →value標簽:用於指明鍵值對中的值,類型為基本類型、字符串類型

      →ref標簽:用於指明鍵值對中的值,類型為引用對象類型,即其他的Bean,其用法同之前的ref標簽

  map實例1:

 1 <bean id=”helloworld” class=”com.dh.spring.HelloWorld”>
 2   <property name=”pname”>
 3     <map>
 4       <entry key=”mkey1”>
 5         <value>mvalue1</value>
 6       </entry>
 7       <entry key=”mkey2”>
 8         <value>mvalue2</value>
 9       </entry>
10     </map>
11   </property>
12 </bean>

  map實例2:

1 <bean id=”helloworld2” class=”com.dh.spring.HelloWorld2”>
2     <property name=”pname”>
3       <map>
4       <entry key=”mkey1”>
5         <ref bean=”helloworld”/>
6       </entry>
7     </map>
8   </property>
9 </bean>    

  ▶props標簽:用於聲明該依賴對象為一個properties集合,其下用prop標簽來指定屬性的名稱及值(鍵值對)

    ▷prop標簽:用於設置集合中的一個鍵值對

      →key屬性:用於指明鍵值對中的鍵,一般為字符串

      →文本內容:用於指明鍵值對中的值,一般為字符串,不用加引號

  props實例:

1 <bean id=”helloword” class=”com.dh.spring.HelloWorld”>
2   <property name=”pname”>
3     <props>
4       <prop key=”pkey1”>pvalue1</prop>
5       <prop key=”pkey2”>pvalue2</prop>
6     </props>
7   </property>
8 </bean>

5、Bean的生命周期

  Bean的生命周期包括Bean的定義,Bean的初始化,Bean的使用,Bean的銷毀

  Bean的定義:一般Bean使用XML文件的方式進行定義,定義的時候將Bean之間的依賴關系和屬性的賦值都進行了定義

  Bean的初始化:其實Bean的初始化包括Bean的創建和初始化兩個方法,Bean的創建和初始化一般是同步進行的,Bean在完成創建後直接就會進行初始化操作,創建的時機與Bean的lazy-init屬性的設置有關。

  Bean的使用:在web程序運行期間,發生對某一個Bean的調用時,就會使用這個Bean實例,如果使用編碼的方式來獲取Bean同樣也是Bean的使用,Bean的編碼使用方式有三種,第一種是使用BeanWarpper,第二種是使用BeanFactory,第三種就是使用ApplicationContext。

  Bean的銷毀:Bean實例在程序退出的時候會進行銷毀,而在銷毀之前會自動調用Bean的destory-method屬性指定名稱的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved