ActiveMQ发送和接收消息
使用convertAndSend发送消息的时候,可以使用单参数或者双参数,使用单参数的时候会将消息发送至默认的地址,如果没有xml文件设置,则会报错无法找到DefaultDestination。
先在pom.xml文件添加
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>5.1.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
使用springboot开发时,可以使用注解。
发送消息,新建一个Queue设置地址名,JmsMessagingTemplate的convertAndSend方法来发送消息
public class MessageSender {
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
public void sendMessage(final Map<String, Object> mapMessage) {
Queue queue = new ActiveMQQueue("vojSubmissionTaskQueue");
jmsMessagingTemplate.convertAndSend(queue,mapMessage);
}
}
接收消息,一般使用MessageListener监听队列,重写onMessage方法来获取消息,在onMessage方法上使用注解@JmsListener来设置地址
public class MessageReceiver implements MessageListener {
@JmsListener(destination = "vojJudgeResultQueue")
public void onMessage(Message message) {
//事件处理
}
}

浙公网安备 33010602011771号