02.Spring集成ActiveMq-队列queue

3.1 引入jar包:

<dependencies>
  	<dependency>
  		<groupId>org.apache.activemq</groupId>
  		<artifactId>activemq-all</artifactId>
  		<version>5.15.13</version>
  	</dependency>
  	
  	<!-- https://mvnrepository.com/artifact/org.apache.xbean/xbean-spring -->
	<dependency>
	    <groupId>org.apache.xbean</groupId>
	    <artifactId>xbean-spring</artifactId>
	    <version>3.16</version>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
	<dependency>
	    <groupId>org.slf4j</groupId>
	    <artifactId>slf4j-api</artifactId>
	    <version>1.7.25</version>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
	<dependency>
	    <groupId>ch.qos.logback</groupId>
	    <artifactId>logback-classic</artifactId>
	    <version>1.2.3</version>
	    <scope>test</scope>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
	<dependency>
	    <groupId>org.projectlombok</groupId>
	    <artifactId>lombok</artifactId>
	    <version>1.16.20</version>
	    <scope>provided</scope>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/junit/junit -->
	<dependency>
	    <groupId>junit</groupId>
	    <artifactId>junit</artifactId>
	    <version>4.13</version>
	    <scope>test</scope>
	</dependency>
  </dependencies>

3.2 队列queue

3.2.1 创建消息生产者:
public class JmsProduce {

	private static final String URL="tcp://192.168.0.106:61616";
	private static final String QUEUE_NAME="queue01";
	
	public static void main(String[] args) throws JMSException {
		ActiveMQConnectionFactory factory=new ActiveMQConnectionFactory(URL);
		Connection  connection=factory.createConnection();
		connection.start();
		
		Session session=connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		Queue queue=session.createQueue(QUEUE_NAME);
		MessageProducer producer=session.createProducer(queue);
		
		for(int i=0;i<3;i++){
			TextMessage  msg=session.createTextMessage("msg----0"+i);
			
			producer.send(msg);
		}
		System.out.println("发送完成!");
		producer.close();
		session.close();
		connection.close();
	}
}
3.2.2 利用receive创建消费者
package com.serlfy.study.activemq.queue;

import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

public class JmsConsumer {

	private static final String URL="tcp://192.168.0.106:61616";
	private static final String QUEUE_NAME="queue01";
	
	public static void main(String[] args) throws JMSException {
		ActiveMQConnectionFactory factory=new ActiveMQConnectionFactory(URL);
		Connection  connection=factory.createConnection();
		connection.start();
		
		Session session=connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		Queue queue=session.createQueue(QUEUE_NAME);
		
		MessageConsumer consumer=session.createConsumer(queue);
		
		while(true){
			TextMessage textMessage=(TextMessage) consumer.receive();
			if(null!=textMessage){
				System.out.println("consumer接收消息:"+textMessage.getText());
			}else{
				break;
			}
			
		}
		consumer.close();
		session.close();
		connection.close();
	}
}
3.2.3 利用监听器创建消费者
package com.serlfy.study.activemq.queue;

import java.io.IOException;

import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

public class JmsConsumer {

	private static final String URL="tcp://192.168.0.106:61616";
	private static final String QUEUE_NAME="queue01";
	
	public static void main(String[] args) throws JMSException, IOException {
		ActiveMQConnectionFactory factory=new ActiveMQConnectionFactory(URL);
		Connection  connection=factory.createConnection();
		connection.start();
		
		Session session=connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		Queue queue=session.createQueue(QUEUE_NAME);
		
		MessageConsumer consumer=session.createConsumer(queue);
		
		//利用消息监听器
		consumer.setMessageListener(new MessageListener() {
			
			@Override
			public void onMessage(Message message) {
				if(null!=message&& message instanceof TextMessage){
					TextMessage textMessage=(TextMessage) message;
					
					try {
						System.out.println("consumer接收消息:"+textMessage.getText());
					} catch (JMSException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		});
		System.in.read();//保持会话
		consumer.close();
		session.close();
		connection.close();
	}
}

posted @ 2022-08-30 23:38  NIANER2011  阅读(29)  评论(0编辑  收藏  举报