我們可以在 Spring 的配置文件中直接設(shè)置 Bean 的屬性值。例如:你的 Bean 有一個“maxSize”屬性,它表示每頁顯示數(shù)據(jù)的最大值,它有一個 set 方法。代碼如下:
private int maxSize;
public void setMaxSize(int maxSize) {
this.maxSize = maxSize;
}
這樣,你可以在Bean定義時設(shè)置這個屬性的值:
<property name="maxSize"><value>20</value></property>
前面介紹了 Bean 原始類型的屬性設(shè)置。這種方式已經(jīng)可以非常有效而便利的參數(shù)化應(yīng)用對象。然而,Bean 工廠的真正威力在于:它可以根據(jù) bean 屬性中描述的對象依賴來組裝(wire)bean 實例。例如:userDao 對象的一個屬性“sessionFactory”引用了另外一個 Bean 對象,即 userDao
對象實例依賴于sessionFactory
對象:
? ? <bean id="userDao" class="com.dev.spring.simple.HibernateUserDao">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
</bean>
在這個簡單的例子中,使用元素引用了一個 sessionFactory 實例。在 ref 標(biāo)簽中,我們使用了一個“l(fā)ocal”屬性指定它所引用的Bean對象。除了 local 屬性之外,還有一些其它的屬性可以用來指定引用對象。下面列出元素的所有可用的指定方式:
bean:可以在當(dāng)前文件中查找依賴對象,也可以在應(yīng)用上下文(ApplicationContext)中查找其它配置文件的對象。
local:只在當(dāng)前文件中查找依賴對象。這個屬性是一個 XML IDREF,所以它指定的對象必須存在,否則它的驗證檢查會報錯。
external:在其它文件中查找依賴對象,而不在當(dāng)前文件中查找。
總的來說,和大部分的時候可以通用?!癰ean”是最靈活的方式,它允許你在多個文件之間共享 Bean。而“l(fā)ocal”則提供了便利的XML驗證。