標籤:style io ar 使用 sp java strong on ef
例:有兩個類AutoWiringDao和AutoWiringService兩個類,AutoWiringDao是AutoWiringService的一個屬性.在沒用自動裝配之前是這樣配置的:
<?xml version="1.0" encoding="UTF-8" ?><beans ........> <bean id="autoWiringDao" class="com.main.huihui.AutoWiringDao" /> <bean id="autoWiringService" class="com.main.huihui.AutoWiringService"> <property name="autoWiringDao" ref="autoWiringDao" /> </bean></beans>
在使用自動裝配後:
一.no:不做任何操作(預設選項)
二.byName:根據屬性名稱自動裝配.此選項將檢查容器並根據名字尋找與屬性完全一致的bean,並將其與屬性自動裝配.
<?xml version="1.0" encoding="UTF-8" ?><beans ........ default-autowiring="byName"> <bean id="autoWiringDao" class="com.main.huihui.AutoWiringDao" /> <bean id="autoWiringService" class="com.main.huihui.AutoWiringService" /></beans>
三.byType:如果容器中存在一個與指定屬性類型相同的bean,那麼將與該屬性自動裝配;如果存在多個該類型bean,那麼拋出異常,並指出不能使用byType方式進行自動裝配;如果沒有找到相匹配的bean,則什麼都不發生.根據byType來尋找,與id沒有關係,id不寫也可以.
<?xml version="1.0" encoding="UTF-8" ?><beans ........ default-autowiring="byType"> <bean id="autoWiringDao" class="com.main.huihui.AutoWiringDao" /> <bean id="autoWiringService" class="com.main.huihui.AutoWiringService" /></beans>
四.constructor:與byType方式類似,不同之處在於它應用於建構函式.如果容器中沒有找到與構造器參數一致的bean,那麼拋出異常.
class AutoWiringService { private AutoWiringDao autoWiringDao; public AutoWiringService(AutoWiringDao autoWiringDao) { this.autoWiringDao = autoWiringDao; } ....}
<?xml version="1.0" encoding="UTF-8" ?><beans ........ default-autowiring="constructor"> <bean id="autoWiringDao" class="com.main.huihui.AutoWiringDao" /> <bean id="autoWiringService" class="com.main.huihui.AutoWiringService" /></beans>
Bean的自動裝配Autowiring