假設(shè)有有兩個類型一樣的bean
<bean id="userDao1" class="x.y.userDao"/>
<bean id="userDao2" class="x.y.userDao"/>
然后在另外一個bean中用setter注入userDao1這個bean,以前是這種寫法
<bean id="userService" class="x.y.userService">
<property name="userDao1" ref="userDao1"/>
</bean>
當(dāng)使用自動裝配的時候垢乙,即spring幫我們自動注入
<bean id="userService" class="x.y.userService" autowire="byName">
</bean>
byName是按名字裝配,只有你這個userService這個bean類里有一個私有變量名字叫做userDao1媒鼓,而且beanFactory里有一個名為userDao1的bean就行了
還有一種是byType,是按類型裝配剩燥,樓上那兩個bean都是x.y.userDao即同一種類型澳骤,所以如果選擇byType就會報錯,說不知道是要裝配哪個反番,刪了其中一個就可以沙热。
我覺得自動裝配的好處就是,不用寫多代碼罢缸,如果你在類里加了一個依賴篙贸,它能幫你自動裝配,而不用去手動注入枫疆。但是得確保里面有這個bean名字爵川,或者有唯一一個類型的bean,還是比較麻煩的养铸。主要是這兩種自動裝配雁芙。還有一個default自動裝配是在xsd那里幫你寫好轧膘。