Spring Bean Custom Scope JMS

Ich benutze Spring Framework umgleichzeitig Nachrichten aus einer JMS-Warteschlange mithilfe von verbrauchenDefaultMessageListenerContainer. Ich möchte die Möglichkeit haben, neue Instanzen der Beans zu erstellen, die für jede eingehende Nachricht automatisch verkabelt werden. Ich dachte, das Festlegen des Bereichs = "Prototyp" würde funktionieren, aber es scheint den Job nicht zu erledigen. Weiß jemand von einemBenutzerdefinierter Bean-Bereich, der neue Instanzen pro JMS-Nachricht erstellt? Ähnlich wie der Bereich "Anfrage" für HTTP-Anfragen?

Mir ist klar, dass ich com.sample.TestListener "BeanFactoryAware" erstellen und dann einfach eine getBean ("foo") in meiner onMessage erstellen könnte, aber ich wollte vermeiden, die Spring-Abhängigkeit in meinen Code zu integrieren.

Vielen Dank im Voraus für jede Hilfe!

Im folgenden Beispiel möchte ich eine neue Instanz von "com.sample.Foo" und alle Beans, die bei jedem Eingang einer Nachricht hinzugefügt werden.

<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>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage