2012-12-24 295 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());