日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Spring自動(dòng)裝配

 我是書迷705 2015-04-22

自動(dòng)裝配,官方給出的定義是這樣:
Spring IoC容器可以自動(dòng)裝配(autowire)相互協(xié)作bean之間的關(guān)聯(lián)關(guān)系。因此,如果可能的話,可以自動(dòng)讓Spring通過檢查BeanFactory中的內(nèi)容,來替我們指定bean的協(xié)作者(其他被依賴的bean)。由于autowire可以針對單個(gè)bean進(jìn)行設(shè)置,因此可以讓有些bean使用autowire,有些bean不采用。autowire的方便之處在減少或者消除屬性或構(gòu)造器參數(shù)的設(shè)置,這樣可以給我們的配置文件減減肥

其實(shí),自動(dòng)裝配就是讓我們少些幾個(gè)  <ref ="...">.

我們還是從需求出發(fā).我們假設(shè)有4個(gè)bean.分別是bean2,bean3,bean4,bean5..其中,bean2里面有后面幾個(gè)

的引用..我只放出來bean2.java.

package com.test.model;
public class Bean2 {

 private Bean3 bean3;

 private Bean4 bean4;
 
 private Bean5 bean5;

 public Bean3 getBean3() {
  return bean3;
 }

 public void setBean3(Bean3 bean3) {
  this.bean3 = bean3;
 }

 public Bean4 getBean4() {
  return bean4;
 }

 public void setBean4(Bean4 bean4) {
  this.bean4 = bean4;
 }

 public Bean5 getBean5() {
  return bean5;
 }

 public void setBean5(Bean5 bean5) {
  this.bean5 = bean5;
 }
}
我們看不用自動(dòng)裝配的寫法

<bean id="bean2" class="com.test.model.Bean2">
  <property name="bean3" ref="bean3"/>
  <property name="bean4">
   <ref bean="bean4"/>
  </property> 
  <property name="bean5" ref="bean5"/>
 </bean>

很明顯,下面的幾個(gè)屬性設(shè)置是很繁瑣的..我們假設(shè)使用自動(dòng)裝配.我們只需要這樣

<bean id="bean2" class="com.test.model.Bean2" />

里面的裝配都不用寫.

另外:

   模式                        說明 
     no                      
不使用自動(dòng)裝配,必須通過ref元素指定依賴,默認(rèn)設(shè)置。 
    byName                   
根據(jù)屬性名自動(dòng)裝配。此選項(xiàng)將檢查容器并根據(jù)名字查找與                
                             
屬性完全一致的bean,并將其與屬性自動(dòng)裝配。 
    byType                   
如果容器中存在一個(gè)與指定屬性類型相同的bean,那么將與 
                             
該屬性自動(dòng)裝配;如果存在多個(gè)該類型bean,那么拋出異 
                             
常,并指出不能使用byType方式進(jìn)行自動(dòng)裝配;如果沒有找 
                             
到相匹配的bean,則什么事都不發(fā)生,也可以通過設(shè)置 
                              dependency-check="objects"
Spring拋出異常。 
    constructor              
byType方式類似,不同之處在于它應(yīng)用于構(gòu)造器參數(shù)。如 
                             
果容器中沒有找到與構(gòu)造器參數(shù)類型一致的bean,那么拋出 
                             
異常。 
    autodetect               
通過bean類的自省機(jī)制(introspection)來決定是使用 
                              constructor
還是byType方式進(jìn)行自動(dòng)裝配。如果發(fā)現(xiàn)默認(rèn)的 
                              構(gòu)造器,那么將使用byType方式。

 

  JavaBean 是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。

javaBean自省技術(shù)
javaBean 
具有的自省機(jī)制可以在不知道javaBean都有哪些屬性的情況下,設(shè)置他們的值。。

自省機(jī)制的核心是反射機(jī)制。

javaBean的自省機(jī)制主要由Introspector實(shí)現(xiàn),該接口中提供了關(guān)鍵的方法。

 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多