0

为了初始化依赖对象,我们在 '/WEB-INF/springmvc-servlet.xml' 中放置了一个 bean 条目:

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

对于参考 bean "car1" 和 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 中,我想要汽车列表 whoes 的值高于 40000,因此我必须从 DB 获取数据,所以我如何调用我的服务或 DB 查询来准备这样的 bean 是否可能?

4

1 回答 1

0

您可以实现 BeanDefinitionParser 并覆盖其中的适当方法。

并使用

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

于 2012-12-24T12:05:04.680 回答