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) {
        //事件处理
    }
}
posted @ 2020-01-11 17:51  Mo-gujun  阅读(969)  评论(0)    收藏  举报