springboot整合activemq完整示例

项目:

maven里添加依赖:

<!--activemq-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

生产者:

@Service("producer")
public class Producer {
    @Autowired
    JmsMessagingTemplate jmsTemplate;

    /**
     * 发送消息
     *
     * @param destination 发送到的队列名
     * @param message     消息体
     */
    public void sendMessage(Destination destination, final String message) {
        jmsTemplate.convertAndSend(destination, message);
    }

消费者:可选两种模式

1.已知queue名:

@JmsListener(destination = "")    //queue名
public void receiveQueue(String txt) {
    System.out.println("receive:" + txt);
}

@JmsListener(destination = "test.queue")
@SendTo("")    //转发
public String receiveQueue2(String txt) {
    System.out.println("receive2:" + txt);
    return "return message" + txt;
}

2.不知名:

@Component
public class QueueMessageListner implements MessageListener {
    @Override
    public void onMessage(Message message) {
        try {
            ActiveMQDestination queues = (ActiveMQDestination) message.getJMSDestination();
            if (queues.getPhysicalName().equals("q1")) {    //“q1”为queue名
                System.out.println(message.toString());
            }
            System.out.println(message.toString());
        } catch (JMSException e) {
                e.printStackTrace();
        }
    }
}

然后,本机上可以下载安装activemq:

安装包可以网上下,然后解压到本地,找到conf-activemq.xml,修改这部分:

        <transportConnectors>
            <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

        </transportConnectors>

将0.0.0.0---->127.0.0.1

启动:


找到本机匹配位数的目录,启动activemq.bat脚本

springboot对应的配置文件添加:

#activemq

spring.activemq.broker-url=tcp://127.0.0.1:61616

然后,写两个类,模拟生产和消费。

进页面:

默认账户和密码都是admin

猜你喜欢

转载自blog.csdn.net/genghongsheng/article/details/80943171