Active MQ的安装
下载地址:http://activemq.apache.org/do...
下载后解压,进入该目录,进入bin文件夹
启动:
activemq start
在浏览器中输入:http://localhost:8161/admin
用户名: admin
密码: admin
即可以实现Active MQ的页面访问
安装依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
写公用配置
@Configuration
public class ActiveMqConfig {
/**
* 发布/订阅模式队列名称
*/
public static final String TOPIC_NAME = "activemq.topic";
/**
* 点对点模式队列名称
*/ public static final String QUEUE_NAME = "activemq.queue";
@Bean
public javax.jms.Destination topic() {
return new ActiveMQTopic(TOPIC_NAME);
}
@Bean
public javax.jms.Destination queue() {
return new ActiveMQQueue(QUEUE_NAME);
}
/**
* JmsListener注解默认只接收queue消息,如果要接收topic消息,需要设置containerFactory
*/
@Bean
public JmsListenerContainerFactory topicListenerContainer(ConnectionFactory connectionFactory) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);
// 相当于在application.yml中配置:spring.jms.pub-sub-domain=true
factory.setPubSubDomain(true);
return factory;
}
}
写service中生产者和消费者
MsgProducer:生产者
@Service
public class MsgProducer {
@Resource
private JmsMessagingTemplate jmsMessagingTemplate;
public void sendMessage(Destination destination, String msg) {
jmsMessagingTemplate.convertAndSend(destination, msg);
}
}
QueueConsumer:消费者
@Service
public class QueueConsumer {
/**
* 接收点对点消息 * @param msg
*/
@JmsListener(destination = ActiveMqConfig.QUEUE_NAME)
public void receiveQueueMsg(String msg) {
System.out.println("收到的消息为:" + msg);
}
}
写controller层
@Resource
private MsgProducer producer;
@Resource
private Destination queue;
@GetMapping("send/queue")
public String sendQueueMessage(){
logger.info("===开始发送点对点消息===");
producer.sendMessage(queue, "Queue: hello activemq!");
return "success";
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。