2012-12-24 296 views
0

要初始化依賴對象,我們把Bean的條目「/WEB-INF/springmvc-servlet.xml」爲:在依賴注入中dynamiclly初始化依賴項對象?

<bean id="carManager" class="springmvc.service.CarManager"> 
    <property name="carList"> 
    <list> 
     <ref bean="car1"/> 
     <ref bean="car2"/> 
    </list> 
    </property> 
</bean> 

參考豆「CAR 1」和CAR2" 我們有項是:

<bean id="car1" class="springmvc.model.Car"> 
    <property name="id" value="1"/> 
    <property name="brand" ref="brand1"/> 
    <property name="model" value="SL 500"/> 
    <property name="price" value="40000"/> 
</bean> 

<bean id="car2" class="springmvc.model.Car"> 
    <property name="id" value="2"/> 
    <property name="brand" ref="brand2"/> 
    <property name="model" value="607"/> 
    <property name="price" value="35000"/> 
</bean> 

所以我的問題是我們可以動態地準備「car1」和「car2」bean,例如在「car1」bean中我想要汽車列表誰的值高於40000,所以我必須從DB獲取數據我可以打電話給我的服務或數據庫查詢準備這樣的豆嗎?

回答

0

您可以實現BeanDefinitionParser並覆蓋其中的適當方法。

並使用

BeanDefinitionBuilder messageProcessorBuilder = BeanDefinitionBuilder.genericBeanDefinition(MessagingPostProcessor.class); messageProcessorBuilder.addConstructorArgValue(StringUtils.split(packageNames,「,」)); registry.registerBeanDefinition(MessagingPostProcessor.class.getName(),messageProcessorBuilder.getBeanDefinition());