使用Spring配置ActiveMQ的发布订阅模式

阅读更多

通过Spring对ActiveMQ进行配置开发,发布订阅模式,支持消息的持久化。

需要Spring2.5版本以上,如果有多个订阅者,每个订阅者需要指定不同的 clientId 。

 

发布者的配置:

 





	
	
		
		
		
			
				
				
				 
				
			
		
	

	
	
		
		
	

	
	
		
		
		
		
		
	

 

 

发布者的代码:

 

package com.xikang.jms;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;

public class SimpleJMSSender {

	public static void main(String[] args) {
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-send.xml");
		
		JmsTemplate jmsTemplate = (JmsTemplate) ctx.getBean("myJmsTemplate");
		for (int i = 0; i < 10; i++) {
			jmsTemplate.send(new MessageCreator() {
				public Message createMessage(Session session) throws JMSException {
					TextMessage msg = session.createTextMessage();
					// 设置消息属性
					msg.setStringProperty("phrCode", "C001");
					// 设置消息内容
					msg.setText("Hello World!");
					return msg;
				}
			});
		}
	}
}

 

 

订阅者的配置:

 





	
	
		
		
		
		
		
			
				
				
			
		
	

	
	
		
		
	

	
	

	
	
		
		
		
		
		
	

	
	
		
		
		
		
		
		
		
		
		
		
		
	

 

 

订阅者的代码:

 

package com.xikang.jms;

import javax.jms.JMSException;
import javax.jms.TextMessage;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jms.JmsException;

public class SimpleJMSReceiver {

	public static void main(String[] args) {
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-receive.xml");
		while(true) {
		}
	}
	
	public void receive(TextMessage message) throws JmsException, JMSException {
		System.out.println(message.getStringProperty("phrCode"));
		System.out.println(message.getText());
	}
}

 

 

你可能感兴趣的:(spring,activemq,发布订阅,持久化)