Spring的學習(二):裝配Bean
阿新 • • 發佈:2018-12-13
Spring容器負責建立應用程式中的bean並通過DI來協調這些物件之間的關係。當描述bean如何進行裝配時,Spring具有非常大的靈活性,它提供了三種主要的裝配機制:
- 在XML中進行顯示配置
- 在Java中進行顯示配置
- 隱式的bean發現機制和自動裝配
1.自動化裝配bean
Spring從兩個角度來實現自動化裝配:
- 元件掃描:Spring會自動發現應用上下文中所建立的bean
- 自動裝配:Spring自動滿足bean之間的依賴 元件掃描和自動裝配組合在一起就能發揮出強大的威力,它們能夠將你的顯式配置降低到最少。
元件掃描:使用@ComponentScan註解會自動掃描包下所有使用@Service
自動裝配:@Autowired可以對成員變數、方法、建構函式進行註釋(預設按照型別進行裝配)。
2.通過Java程式碼裝配bean
有些場景是沒有辦法使用自動化裝配的,如要將第三方庫中的元件裝配到你的應用中(這種沒有辦法對類使用註解,不能夠更改原始碼),可以使用顯示裝配的方式。顯示裝配又分為XML和Java。我們先來介紹一下Java程式碼裝配的方式。
步驟: (1)建立配置類 新建一個配置類,使用@Configuration註解。(相當於XML方法中對應的xml檔案) (2)宣告簡單的bean
@Configuration
public class CDPlayerConfig(){
@Bean
public CompactDisc compactDisc(){
return new CompactDisc();
}
@Bean
public CDPlayer cdPlayer(){
return new CDPlayer(compactDisc());
}
}
3.使用XML裝配bean
步驟: (1)建立XML配置規範: 在使用XML為Spring裝配bean之前,你需要建立一個新的配置規範。在使用JavaConfig的時候,這意味著要建立一個帶有@Configuration註解的類,而在XML配置中,這意味著要建立一個XML檔案,並且要以beans標籤元素為根。
<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"
xmlns:tx="http://www.springframework.org/schema/tx">
</beans>
(2)宣告一個簡單的bean標籤
<bean class="soundsystem.CompactDisc" />
(3)注入 例如:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
將dataSource注入到了sessionFactory中。