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では、値が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 に答える