spring中bean自動裝配有三種裝配機制:
spring的自動裝配需要從兩個角度來實現,或者說是兩個操作:
採用autowire byname)(按名稱自動裝配
//新建兩個實體類,cat dog都有乙個叫的方法
public
class
cat}
public
class
dog}
//新建乙個使用者類user
public
class
user
編寫spring配置檔案,注意user注入的那一塊的bean
<?xml version="1.0" encoding="utf-8"?>
xmlns
=""xmlns:xsi
=""xsi:schemalocation
="/spring-beans.xsd"
>
"dog"
class
="com.kuang.pojo.dog"
/>
"cat"
class
="com.kuang.pojo.cat"
/>
"user"
class
="com.kuang.pojo.user"
autowire
="byname"
>
name
="str"
value
="qinjiang"
/>
bean
>
beans
>
測試一波
public
class
mytest
}
nice!輸出正常
採用autowire bytype(按型別自動裝配)
使用autowire bytype首先需要保證:同一型別的物件,在spring容器中唯一。如果不唯一,會報不唯一的異常
"dog"
class
="com.kuang.pojo.dog"
/>
"cat"
class
="com.kuang.pojo.cat"
/>
"cat2"
class
="com.kuang.pojo.cat"
/>
"user"
class
="com.kuang.pojo.user"
autowire
="bytype"
>
name
="str"
value
="qinjiang"
/>
bean
>
在spring配置檔案中引入context檔案頭
xmlns:context=""
/spring-context.xsd
開始屬性註解支援!
<
context:annotation-config
/>
測試註解
//將user類中的set方法去掉,使用@autowired註解
public
class
user
public dog getdog()
public string getstr()
}
此時配置檔案內容
<
context:annotation-config
/>
"dog"
class
="com.kuang.pojo.dog"
/>
"cat"
class
="com.kuang.pojo.cat"
/>
"user"
class
="com.kuang.pojo.user"
/>
nice測試成功,結果成功輸出
"dog1"
class
="com.kuang.pojo.dog"
/>
"dog2"
class
="com.kuang.pojo.dog"
/>
"cat1"
class
="com.kuang.pojo.cat"
/>
"cat2"
class
="com.kuang.pojo.cat"
/>
沒有加qualifier測試,直接報錯
@autowired
@qualifier
(value =
"cat2"
)private cat cat;
@autowired
@qualifier
(value =
"dog2"
)private dog dog;
nice成功輸出
public
class
user
"dog"
class
="com.kuang.pojo.dog"
/>
"cat1"
class
="com.kuang.pojo.cat"
/>
"cat2"
class
="com.kuang.pojo.cat"
/>
"user"
class
="com.kuang.pojo.user"
/>
nice測試結果成功 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,那麼將與該屬性自動裝配 如果存在多個該型別...