Spring DefaultMessageListenerContainer MDP初始化

时间:2012-02-15 20:45:14

标签: spring jms spring-jms

在DefaultMessageListenerContainer初始化上执行初始化的最佳方法是什么?目前我正在等待第一条消息,并使用布尔变量跟踪它,这不是那么漂亮。有没有更好的办法 ?我想在Message Driven POJO启动后读取并将某些数据加载到缓存中,因此消息处理速度更快。

(编辑)的

Spring Config Fragement:

<bean id="itemListener" class="com.test.ItemMDPImpl" autowire="byName" />

<bean id="itemListenerAdapter" class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
    <property name="delegate" ref="itemListener" />
    <property name="defaultListenerMethod" value="processItems" />
    <property name="messageConverter" ref="itemMessageConverter" />
</bean>

<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="itemMqConnectionFactory" />
    <property name="destinationName" value="${item_queue_name}" />
    <property name="messageListener" ref="itemListenerAdapter" />
    <property name="transactionManager" ref="jtaTransactionManager" />
    <property name="sessionTransacted" value="true" />
    <property name="concurrentConsumers" value="1" />
    <property name="receiveTimeout" value="3000" />
</bean>

我希望在侦听器收到任何消息之前完成一些初始化。

1 个答案:

答案 0 :(得分:2)

您是否可以使用@PostConstruct注释ItemMDPImpl上的方法来执行启动初始化,就像任何其他Spring bean一样?

4.9.6 @PostConstruct and @PreDestroy