集成 Spring Boot 和 ActiveMQ 可以通过以下步骤完成:
在项目的 pom.xml
文件中添加 Spring Boot 和 ActiveMQ 的依赖。
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- ActiveMQ -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>5.16.2</version> <!-- 请根据实际情况选择版本 -->
</dependency>
</dependencies>
在 application.properties
或 application.yml
文件中配置 ActiveMQ 的相关属性,如连接地址、端口、用户名和密码等。
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
创建一个消息生产者类,使用 @Autowired
注解注入 ActiveMQTemplate
,并使用其发送消息。
@Service
public class MessageProducer {
@Autowired
private ActiveMQTemplate<String> activeMQTemplate;
public void sendMessage(String message) {
activeMQTemplate.send("queueName", message);
}
}
创建一个消息消费者类,使用 @Autowired
注解注入 DefaultMessageListenerContainer
,并实现消息监听器接口。在监听器中处理接收到的消息。
@Component
public class MessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
// 处理接收到的消息逻辑
}
}
在 application.yml
文件中配置 DefaultMessageListenerContainer
的相关属性,如名称、自动启动、队列名称等。然后使用 @EnableBinding
注解将监听器容器绑定到需要监听的类上。
同时,需要在 Spring Boot 的配置类中配置 ActiveMQ 的连接地址和队列名称。例如:
@Configuration
public class ActiveMQConfig {
@Bean(name = "queueName") // 队列名称配置,需要根据实际情况修改为实际使用的队列名称
public Queue queue() {
return new ActiveMQQueue("queueName"); // 使用 ActiveMQQueue 作为队列类型,确保正确绑定到 ActiveMQ 队列上
}
}
启动 Spring Boot 应用,并发送一条消息到指定的队列上。在消息消费者中监听并处理接收到的消息。如果一切正常,应该能够成功地发送和接收消息。