关于activemq部分,有两个疑问,想咨询一下:
1、现在的例子中,是以发送订单邮件为例的,如果系统中还有其他的异步服务,applicationContext-activemq- embedded-persistence.xml该如何配置?Message Driven POJO、listener container需要如何设置呢?监听容器如何设置多个异步服务?
希望得到高手的解答,谢谢!
1.
Q:现在的例子中,是以发送订单邮件为例的,如果系统中还有其他的异步服务?
A:applicationContext-activemq-embedded-persistence.xml 主要是启动内嵌的broker和为jmstemplate 提供连接connectionFactory
而多个异步服务直接增加多个destination,和producer,然后注入Server即可 参考
- <amq:queue name="destination" physicalName="org.apache.activemq.spring.Test.spring.embedded"/>
- <bean id="orderMessageProducer" class="org.springside.bookstore.components.activemq.OrderMessageProducer">
- <property name="template" ref="jmsTemplate"/>
- <property name="destination" ref="destination"/>
- </bean>
以及在container里面配置consumer, 这样就可以组成一个完成的异步服务了(发送,接受)。
Q:Message Driven POJO、listener container需要如何设置呢?
A:http://wiki.springside.org.cn/display/springside/Home 在我们的wiki里面有详细的配置
而且使用了Spring和jencks 2种container
applicationContext-activemq-embedded-persistence.xml
applicationContext-activemq-embedded-jencks-persistence.xml
Q:监听容器如何设置多个异步服务
多个
- <bean id="listenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
- <property name="connectionFactory" ref="jmsConnectionFactory"/>
- <property name="destination" ref="destination"/>
- <property name="messageListener" ref="messageListener"/>
- </bean>
或者使用jencks管理多个connector
- <jencks:connectors>
- <!-- use jencks container (use spring MessageListenerAdapter)-->
- <jencks:connector ref="messageListener">
- <jencks:activationSpec>
- <amqra:activationSpec destination="org.apache.activemq.spring.Test.spring.embedded"
- destinationType="javax.jms.Queue"/>
- </jencks:activationSpec>
- </jencks:connector>
- </jencks:connectors>