加入依赖,配置ActiveMQ启动器
<!-- 配置ActiveMQ启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>
创建队列
引导类@SpringBootApplication @EnableCaching public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public Queue queue() { return new ActiveMQQueue("cnn.queue"); } }发送消息:
Controller类
@RestController @RequestMapping("queue") public class QueueController { //注入发送消息的对象 @Autowired private JmsTemplate jmsTemplate; //注入消息队列 @Autowired private Destination destination; //编写发送消息的方法 @RequestMapping("send/{message}") public String send(@PathVariable String message) { this.jmsTemplate.convertAndSend(destination, message); return "消息发送成功!消息内容:" + message; } }接受消息:
@Component public class Consumer { // 接受消息方法 @JmsListener(destination = "cnn.queue") public void readMessage(String text) { System.out.println("接受到的消息是:" + text); } }
因为Spring Boot 内置了ActiveMQ 的服务,所以我们不用单独启动也可以实现消息的发送和接收。
使用外部的ActiveMQ#ActiveMQ
spring.activemq.broker-url=tcp://192.168.37.161:61616
这样就加入了ActiveMQ服务的地址
测试:
<!-- 配置测试启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = Application.class) //指定引导类的class public class MessageTest { @Autowired private Destination destination; @Autowired private JmsTemplate jmsTemplate; @Test public void test() { System.out.println("我发消息了!"); this.jmsTemplate.convertAndSend(destination, "Hello ActiveMQ!"); } }