3.1 引入jar包:
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.15.13</version>
</dependency>
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
<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) {
e.printStackTrace();
}
}
}
});
System.in.read();
consumer.close();
session.close();
connection.close();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?