autowired(自動裝配)
spring 2.5引入。spring3.0後,自動裝配策略分bytype、byname、constructor三種方式。
@autowired註解可以對類成員變數、方法、建構函式進行標註,完成自動裝配功能。
@autowired 根據型別(type)進行自動注入,預設注入單例(singleton)的bean。就是乙個。 如果發現找到有很多bean,則按照byname方式對比獲取,若有名稱一樣的則可以加上@qualifier("***")配置使用。若非必須裝配則可以設定required=false。
如果需要兩個同型別的注入的話,不可以僅用@autowired標籤,否則就會每次注入的例項,就是同乙個例項。
注入介面型別的例項時候,兩種同型別的注入
這種情況下,採取下列方式:
1.可以使用@primary這個註解來確定例項的優先權。
2.採用讓@autowired根據name去自動注入。(name要和屬性名一致)
@autowired
private company a;
@autowired
private company b;
@service("a")
public class smile implements company {
@service("b")
public class cry implements company {
建議tips:註解autowired先預設使用bytype來自動裝配,如果存在型別的多個例項就嘗試使用byname匹配,如果通過byname也確定不了,可以通過primary和priority註解來確定。
這裡不是特別深入。如果有機會再深入原始碼。
spring註解之 Autowired註解 二
我們繼續修改userservice把 autowired註解加在userservice對應的構造方法上如下 service public class userservice 增加乙個tostring方法 方便測試 override public string tostring 執行測試我們可以發現u...
Resource與 Autowired註解的區別
一 resource注入 現在有乙個介面human和兩個實現類manimpl womanimpl,在service層的乙個bean中要引用了介面human,這種情況處理如下 介面human public inte ce human public void walk 實現類womanimpl serv...
Spring 註解 Autowired原理
在啟動spring ioc時,容器會自動裝載autowiredannotationbeanpostprocessor後置處理器 public class autowiredannotationbeanpostprocessor extends instantiationawarebeanpostpr...