1.原生JMS与JAVA的整合
点对点模式
1.生产者代码:
在编代码之前引入jar包
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.11.2</version>
</dependency>
//1.创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp//********");
// 2.创建链接
Connection connection = connectionFactory.createConnection();
// 3.打开链接
connection.start();
// 4.创建session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 创建目的地(Queue:点对点,Topic:主题模式-发布订阅)
Queue queue = session.createQueue("queue01");
// 创建消费生产者
MessageProducer producer = session.createProducer(queue);
// 创建消息
TextMessage sssss = session.createTextMessage("sssss");
// 发送消息
producer.send(sssss);
// 释放资源
session.close();
connection.close();
// 点对点模式的消费者
//1.创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp//********");
// 2.创建链接
Connection connection = connectionFactory.createConnection();
// 3.打开链接
connection.start();
// 4.创建session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 指定目的地(Queue:点对点,Topic:主题模式-发布订阅)
Queue queue01 = session.createQueue("queue01");
// 创建消费者
MessageConsumer consumer = session.createConsumer(queue01);
// 接收消息
consumer.setMessageListener(new MessageListener() {
// 当然也可以在类上实现MessageListener来用onMessage方法
@Override
public void onMessage(Message message) {
if (message instanceof TextMessage){
TextMessage textMessage = (TextMessage) message;
try {
System.out.println(textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
});
}
// 主题模式的生产者
代码如下
//1.创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp//********");
// 2.创建链接
Connection connection = connectionFactory.createConnection();
// 3.打开链接
connection.start();
// 4.创建session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 创建目的地(Queue:点对点,Topic:主题模式-发布订阅)
Topic topic01 = session.createTopic("topic01");
// 创建消费生产者
MessageProducer producer = session.createProducer(topic01);
// 创建消息
TextMessage sssss = session.createTextMessage("sssss");
// 发送消息
producer.send(sssss);
// 释放资源
session.close();
connection.close();
// 消费者
//1.创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp//********");
// 2.创建链接
Connection connection = connectionFactory.createConnection();
// 3.打开链接
connection.start();
// 4.创建session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 指定目的地(Queue:点对点,Topic:主题模式-发布订阅)
Topic topic = session.createTopic("topic01");
// 创建消费者
MessageConsumer consumer = session.createConsumer(topic);
// 接收消息
consumer.setMessageListener(new MessageListener() {
// 当然也可以在类上实现MessageListener来用onMessage方法
@Override
public void onMessage(Message message) {
if (message instanceof TextMessage){
TextMessage textMessage = (TextMessage) message;
try {
System.out.println(textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
});
}