根據名稱或型別自動裝配(為了減少配置量)
阿新 • • 發佈:2019-02-05
PS:開發階段不建議使用自動裝配,以為它會使得類與類之間的依賴關係變得不明確!
加入有一個bean Bean2.java,它依賴於Bean3 ,Bean4 ,Bean5,程式碼如下:
spring配置檔案如下:
注意:
如果是根據名稱自動裝配(byName),那麼bean2裡的屬性bean3,bean4,bean5就要和配置檔案中的id一致,否則spring會找不到相應的名稱而報錯。
如果是根據型別自動裝配(byType),則屬性名和id號可以不一致,因為是以型別自動裝配的,spring會自動根據‘型別’自動裝配。
加入有一個bean Bean2.java,它依賴於Bean3 ,Bean4 ,Bean5,程式碼如下:
public class Bean2 { private Bean3 bean3; private Bean4 bean4; private Bean5 bean5; public Bean3 getBean3() { return bean3; } public void setBean3(Bean3 bean3) { this.bean3 = bean3; } public Bean4 getBean4() { return bean4; } public void setBean4(Bean4 bean4) { this.bean4 = bean4; } public Bean5 getBean5() { return bean5; } public void setBean5(Bean5 bean5) { this.bean5 = bean5; } }
spring配置檔案如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" default-autowire="byName"//注意這裡,加上需要的裝配樣式,如果是根據型別自動裝配就是byType > <!-- 原來是這樣寫的 <bean id="bean2" class="com.bjsxt.spring.Bean2"> <property name="bean3" ref="bean3"/> <property name="bean4" ref="bean4"/> <property name="bean5" ref="bean5"/> </bean> --> <!--現在只需要這樣寫--> <bean id="bean2" class="com.bjsxt.spring.Bean2"/> <bean id="bean3" class="com.bjsxt.spring.Bean3"/> <bean id="bean4" class="com.bjsxt.spring.Bean4"/> <bean id="bean5" class="com.bjsxt.spring.Bean5"/> </beans>
注意:
如果是根據名稱自動裝配(byName),那麼bean2裡的屬性bean3,bean4,bean5就要和配置檔案中的id一致,否則spring會找不到相應的名稱而報錯。
如果是根據型別自動裝配(byType),則屬性名和id號可以不一致,因為是以型別自動裝配的,spring會自動根據‘型別’自動裝配。