Spring 自動裝配之不能偷懶

2021-08-31 10:16:23 字數 1340 閱讀 2465

在介紹之前,先簡單的提乙個問題(自動裝配總共有幾種呢),答案(六種)也許與大家想的有點背離,但是我個人認為並不是不無道理的。

1. default-autowire="

那五種形式

": 這種是在全域性(即在跟標籤裡)定義的,如果區域性定義了autowire 可想而知,當然是按照區域性的去進行自動裝配了,如果沒有定義就是按照跟標籤的預設定義去進行裝配,所以在這裡把它單獨拿出來作為一種

2. no:通過ref元素指定依賴

3. byname:在容器中尋找和需要自動裝配的屬性名相同的bean(或id),如果沒有找到相符的bean,該屬性就沒有被裝配上。

4. bytype:在容器中尋找乙個與需要自動裝配的屬性型別相同的bean;如果沒有找到相符的bean,該屬性就沒有被裝配上,如果找到超過乙個相符的bean丟擲異常org.springframework.beans.factory.unsatisfieddependencyexception

(特此宣告測試針對spring2.5.6,在spring3.0中檢查到多個bean貌似沒有異常並且在3.0中沒有依賴檢查這個屬性)

5. constructor:在容器中查詢與需要自動裝配的bean的構造方法引數一致的乙個或者過個bean,如果從在不確定的bean或構造方法,容器會丟擲異常org.springframework.beans.factory.unsatisfieddependencyexception.

6. autodetect:首先我們嘗試使用constructor來自動裝配,然後使用bytype方式。不確定行的處理與constuctor和bytype方式一樣

既然我們的題目叫不能偷懶,那當然我們就要介紹no了

<?xml version="1.0" encoding="utf-8"?>

//greetingdaoimpl

public class greetingdaoimpl implements greetingdao

public void setsay(string say)

}//greetingserviceimpl

public class greetingserviceimpl implements greetingservice

public void setgreetingdaoimpl(greetingdaoimpl gdi)

public greetingserviceimpl()

public greetingserviceimpl(greetingdaoimpl greetingdaoimpl)

}//junit測試

@test

public void test1()

Spring自動裝配

先在cn.csdn.hr.dao包中建立幾個檔案 public inte ce basedao public class basehibernatedaoimpl implements basedao public inte ce customerdao public class customerd...

Spring自動裝配

通常情況下,配置bean的時候,一些屬性依賴需要我們自己去裝配,但是如果這是乙個比較大型的工程,裡面定義了成百上千個bean,那全都靠我們手工去裝配,你一定打心底厭煩,幸運的是spring為我們提供了自動裝配的方式 只要遵循一定的規則,spring就會自動幫你裝配依賴,而不需要你手工去裝配 自動裝配...

Spring 自動裝配

bean的自動裝配 autowiring 四種型別 1.no 不做任何操作 2.byname 根據屬性名自動裝配。此選項將檢查容器並根據名字查詢與屬性完全一致的bean,並將其與屬性自動裝配 3.bytype 如果容器中存在乙個與指定屬性型別相同的bean,那麼將與該屬性自動裝配 如果存在多個該型別...