spring+jms

来源:互联网 发布:腾讯数据库在哪里 编辑:程序博客网 时间:2024/04/19 10:01

1.依赖jar包

spring.jar

activeMQ-all-5.8.0.jar

2.配置文件

<!--创建连接工厂 --><bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"><property name="brokerURL" value="tcp://127.0.0.1:61616"></property><property name="useAsyncSend"><value>TRUE</value></property><property name="optimizeAcknowledge"><value>TRUE</value></property></bean><!-- 声明ActiveMQ消息目标,目标可以是一个队列,也可以是一个主题ActiveMQTopic --><bean id="destination" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg index="0" value="my-mq"></constructor-arg></bean><bean id="queue" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg value="mmm" /></bean><!----><bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"><property name="connectionFactory" ref="connectionFactory"></property><property name="defaultDestination" ref="destination"></property><property name="receiveTimeout" value="6000"></property><property name="messageConverter" ><bean class="com.MyConverter" ></bean></property><property name="deliveryMode" value="2" /><property name="sessionAcknowledgeMode" value="1" /></bean><bean id="jmsMessageConverter" class="com.MyConverter"></bean><bean id="jmsReceiver" class="com.Receiver"><property name="jmsTemplate" ref="jmsTemplate"></property><property name="destination" ref="destination"></property></bean><bean id="listenerContainer"class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="connectionFactory" /><property name="destination" ref="destination" /><property name="messageListener" ref="jmsReceiver" /><property name="pubSubNoLocal" value="false"></property></bean>
MyConverter

public class MyConverter implements MessageConverter {@Overridepublic Object fromMessage(Message message) throws JMSException,MessageConversionException {return ((ObjectMessage) message).getObject();}@Overridepublic Message toMessage(Object obj, Session session) throws JMSException,MessageConversionException {ObjectMessage message = session.createObjectMessage();message.setObject((Serializable) obj);return message;}}
消息发送

public class Sender {        @Resource    private JmsTemplate jmsTemplate;        public void pushMsg(Entity entity) {                Map<String, Object> params = new HashMap<String, Object>();                params.put("method", "mq-push");                params.put("sessionId", sessionId);                params.put("pushObject", entity);                                // send mq                jmsTemplate.convertAndSend(params);     }    }



消息接收:com.Receiver

public class Receiver implements MessageListener{ @Override    public void onMessage(Message message) {        log.debug(">>>>>>>>>>>>into receive ");        ObjectMessage convertmessage = (ObjectMessage)message;        try {            Map<String, Object> params = (Map<String, Object>)convertmessage.getObject();            if(params.get("method").equals("mq-push-common")) {               String sessionId=params.get("ioSessionId") ;               Entity entity=(Entity)(params.get("pushObject"));            }                    } catch (JMSException e) {            e.printStackTrace();            log.debug(e.toString());        }            }}






原创粉丝点击