《Spring Recipes》第二章筆記:Declaring Beans from Obje...

《Spring Recipes》第二章筆記:Declaring Beans from Object Properties


問題


在配置文件中將一個對象的屬性聲明爲bean。

解決方案


使用Spring自帶的PropertyPathFactoryBean工廠bean或者使用從Spring2.5開始的<util:property-path>標籤。

使用PropertyPathFactoryBean

bean:
public class ProductRanking {
  private Product bestSeller;
  public Product getBestSeller() {
    return bestSeller;
  }
  public void setBestSeller(Product bestSeller) {
    this.bestSeller = bestSeller;
  }
}


配置文件:
<beans ...>
 <bean id="bestSeller" class="org.springframework.beans.factory.config.PropertyPathFactoryBean">
    <property name="targetObject" ref="productRanking" />
    <property name="propertyPath" value="bestSeller" />
  </bean>

<bean id="productRanking" class="com.apress.springrecipes.shop.ProductRanking">
   <property name="bestSeller">
     <bean class="com.apress.springrecipes.shop.Disc">
      <property name="name" value="CD-RW" />
      <property name="price" value="1.5" />
     </bean>
    </property>
  </bean>

</beans>


使用<util:property-path>

配置文件:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd">
...
<util:property-path id="bestSeller" path="productRanking.bestSeller" />
</beans>
相關文章
相關標籤/搜索