在介紹之前,先簡單的提乙個問題(自動裝配總共有幾種呢),答案(六種)也許與大家想的有點背離,但是我個人認為並不是不無道理的。
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,那麼將與該屬性自動裝配 如果存在多個該型別...