spring+jms

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 {

	@Override
	public Object fromMessage(Message message) throws JMSException,
			MessageConversionException {
		return ((ObjectMessage) message).getObject();
	}

	@Override
	public 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());
        }
        
    }

}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值