加入依赖,配置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!");

    }

}