Spring的 Autowired注入規則

2021-08-03 12:41:51 字數 634 閱讀 7987

spring 2.5 引入了 @autowired 注釋,它可以對類成員變數、方法及建構函式進行標註,完成自動裝配的工作。 通過 @autowired的使用來消除 set ,get方法。

@autowired 預設是按照bytype進行注入的,但是當bytype方式找到了多個符合的bean,又是怎麼處理的?

經過一些**的的測試,autowired預設先按bytype,如果發現找到多個bean,則,又按照byname方式比對,如果還有多個,則報出異常。

例子:

2. 如果存在且唯一,則ok;

@autowired也可以手動指定按照byname方式注入,使用@qualifier標籤,例如:

@autowired()@qualifier("basedao")

因為bean的name具有唯一性,理論上是byname會快一點,但spring預設使用bytype的方式注入,讓我很迷惑,確定不了哪乙個真的快。具體到實際應用,感覺差別不大,就看大家的習慣

另註:@resource(這個註解屬於j2ee的)的標籤,預設是按照byname方式注入的

spring中autowire的用法

autowire模式就是在spring的宣告檔案裡用作進行物件間的關聯關係自動繫結的,就是在spring beanfactory內的乙個bean對其bean的引用可以自動進行,而不一定用ref 的方式顯式宣告。在reference的3.3.6節有詳細的介紹,autowire主要有5種模式 1 no ...

spring中autowire的用法

autowire模式就是在spring的宣告檔案裡用作進行物件間的關聯關係自動繫結的,就是在spring beanfactory內的乙個bean對其bean的引用可以自動進行,而不一定用ref 的方式顯式宣告。在reference的3.3.6節有詳細的介紹,autowire主要有5種模式 1 no ...

spring中autowire的用法

autowire模式就是在spring的宣告檔案裡用作進行物件間的關聯關係自動繫結的,就是在spring beanfactory內的乙個bean對其bean的引用可以自動進行,而不一定用ref 的方式顯式宣告。在reference的3.3.6節有詳細的介紹,autowire主要有5種模式 1 no ...