Spring Bean Custom Scope JMS
Używam Spring Framework dojednocześnie pobiera wiadomości z kolejki JMS za pomocąDefaultMessageListenerContainer. Chcę mieć możliwość tworzenia nowych instancji ziaren, które są automatycznie przypisywane do każdej przychodzącej wiadomości. Pomyślałem, że ustawienie zasięgu = „prototyp” będzie działać, ale wydaje się, że nie działa. Czy ktoś wie oniestandardowy zakres fasoli, który tworzy nowe instancje dla wiadomości JMS? Podobnie jak w przypadku żądania „żądania” dla żądań HTTP?
Zdaję sobie sprawę, że mogłem zrobić com.sample.TestListener „BeanFactoryAware”, a następnie po prostu wykonać getBean („foo”) w moim onMessage, ale chciałem uniknąć umieszczania zależności Spring w moim kodzie.
Z góry dziękuję za wszelką pomoc!
Przykład poniżej, chcę, aby nowe instancje „com.sample.Foo” i wszystkie fasole były wstrzykiwane do niego za każdym razem, gdy przychodzi wiadomość.
<bean id="consumer"
class="com.sample.TestListener">
<constructor-arg ref="foo" />
</bean>
<!--Configures the Spring Message Listen Container. Points to the Connection
Factory, Destination, and Consumer -->
<bean id="MessageListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="CachedConnectionFactory" />
<property name="destination" ref="Topic" />
<property name="messageListener" ref="consumer" />
<property name="concurrency" value="10"/>
</bean>
<bean id="foo" class="com.sample.Foo">
<property name="x" ref="xx" />
<property name="y" ref="yy" />
<property name="z" ref="zz" />
</bean>