JMS的用途在于:
可以异步的方式来处理一些耗时的动作。
可以排队处理并发请求。
可以松耦合。
JMS是以异步的方式来发送和接收消息。
它支持两种消息模型:P2P(Point to Point消息)和Pub/Sub(Publishing/Subscribe消息),即Queue和Topics两种消息模型。
前者是可靠传达,后者并不确定可靠传送。
在EJB3.0中,MDB通过配置destinationType属性来指定MDB的消息模型(值分别为javax.jms.Queue 和javax.jms.Topic)
一些JMS的资源:
Geronimo 中 JMS、MDB 和 ActiveMQ 的使用技巧
www.ibm.com/developerworks/cn/opensource/os-ag-jmsbeans/
tomcat下应用JMS
http://www.blogjava.net/javajohn/archive/2005/12/08/23016.html
使用Spring JMS轻松实现异步消息传递
dev2dev.bea.com.cn/techdoc/20060511782.html
javaeye activeMQ 专题
http://www.iteye.com/subject/ActiveMQ
JMS跟Spring的结合——
1.应用服务器配置JMS源
需要提供JMS的Factory和Queue/Topic的jndi源
2.在Spring的bean配置文件中配置JMS Listener
此处要配置1中的2个jndi源。例如:
<!--========================================================================
JMS configuration
=========================================================================-->
<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="true">
<property name="jndiName" value="java:comp/env/jms/factory" />
</bean>
<bean id="jmsDestination" class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="true">
<property name="jndiName" value="java:comp/env/jms/queue" />
</bean>
<!-- JMS listener wrapper -->
<bean id="listenerContainer" lazy-init="true"
class="org.springframework.jms.listener.DefaultMessageListenerContainer" >
<property name="connectionFactory" ref="jmsConnectionFactory" />
<property name="destination" ref="jmsDestination" />
<property name="messageListener" ref="mailListener" />
</bean>
3. 编写MessageListener的实现类
4. 使用Spring支持的JmsTemplate来进行客户端的JMS消息发送。