Spring DefaultMessageListenerContainer MDP Initialisation
-
25-10-2019 - |
Question
Quelle est la meilleure façon d'effectuer l'initialisation lors de l'initialisation DefaultMessageListenerContainer? Actuellement, je suis en attente pour le premier message et garder une trace de celui-ci en utilisant une variable booléenne, qui n'est pas si jolie. Est-il possible de mieux? Je veux lire et charger certaines données dans le cache une fois que le message Driven POJO est démarré, de sorte que le traitement des messages est plus rapide.
(Edited)
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>
Je voudrais avoir une initialisation effectuée avant tout message est reçu par l'auditeur.
La solution
Tu ne peux pas simplement utiliser @PostConstruct
pour annoter une méthode sur ItemMDPImpl
pour effectuer l'initialisation du démarrage, comme tout autre grain de printemps?