autowire模式就是在spring的宣告檔案裡用作進行物件間的關聯關係自動繫結的,就是在spring beanfactory內的乙個bean對其bean的引用可以自動進行,而不一定用ref=的方式顯式宣告。在reference的3.3.6節有詳細的介紹,autowire主要有5種模式:
1 no
不使用autowire,引用關係顯示宣告,spring的reference也建議不用autoware,因為這會破壞模組關係的可讀性,原文如下:
discouraged to use autowiring because it
removes the transparency and the structure
from your collaborating classes.
2 byname
用名稱關聯,如果指定了這種模式,如
<bean
id="usermanagertarget"
class
="com.mdcchina.jianghu.logic.usermanager"
autowire
="byname"
>
<
property
name
="basedao"
/>
bean
>
這樣對於bean usermanagertarget的屬性basedao,spring就會自動去引用同名的bean,也就是上面的宣告和下面是等價的:
<bean
id="usermanagertarget"
class
="com.mdcchina.jianghu.logic.usermanager"
autowire
="no"
>
<
property
name
="basedao"
>
<
ref
local
="basedao"
/>
property
>
bean
>
3 bytype
和前面的byname類似的,就是這個屬性會在整個beanfactory定義裡找和這個屬性一樣的bean自動關聯上,如果有2個或更多這個型別的bean在beanfactory的定義裡,就直接拋異常了,如果沒有,就什麼都不發生,這個屬性就是null,所以這個只適用與這個屬性的型別有且只有乙個同類的bean在spring裡定義
4 constructor
這個的意思我沒有確定的把握,不過感覺用途也不會大,好像是用建構函式新建乙個屬性型別的bean並關聯上,reference原文是:
bean of the constructor argument type in the bean factory, a fatal error is raised.
5 autodetect
這個的意思好像是說自動決定用bytype還是constructor方式,原文如下:
chooses constructor or bytype through introspection of the bean class. if a default
綜上所述,感覺上只有byname比較實用一些,但是spring的reference還是不推薦在定義中用這個功能
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 ...
自動裝配(Autowire)
了解 自動裝配 autowire 自動裝配表現為不需要配置 節點來注入,spring會自動的為屬性注入值!在 節點中新增 autowire 屬性以配置自動裝配。重要 當取值為 byname 時,表示 根據名稱 自動裝配,即spring會檢查這個bean的所有的屬性名稱,然後在spring管理的所有b...