..

day20201022 - mq in sb

pom.xml

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

 

properites

spring:
  activemq:
    user: admin
    password: admin
    broker-url: tcp://127.0.0.1:61616
View Code

 

config && use

package com.xingan.customized.bus.config;

import org.apache.activemq.command.ActiveMQTopic;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
import org.springframework.jms.config.JmsListenerContainerFactory;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.scheduling.annotation.Scheduled;

import javax.jms.ConnectionFactory;

@EnableJms
@Configuration
public class ActiveMQConfig {

    @Autowired
    private JmsTemplate jmsTemplate;

    private String destination = "destination";

    @Bean
    public JmsListenerContainerFactory<?> topicListenerFactory(ConnectionFactory connectionFactory) {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        factory.setPubSubDomain(true);
        factory.setConnectionFactory(connectionFactory);
        return factory;
    }

    @Bean
    public JmsListenerContainerFactory<?> queueListenerFactory(ConnectionFactory connectionFactory) {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        factory.setPubSubDomain(false);
        factory.setConnectionFactory(connectionFactory);
        return factory;
    }

    @Scheduled(cron = "*/30 * * * * * ")
    public void send() {
        System.out.println("send ....");
        jmsTemplate.convertAndSend(new ActiveMQTopic(destination), "hello world");
    }

    @JmsListener(destination = "destination ", containerFactory = "topicListenerFactory")
    public void subscribe(String message) {
        System.out.println("recevie ..." + message);
    }
}
View Code

 

posted @ 2020-10-22 15:16  罗浩楠  阅读(91)  评论(0)    收藏  举报
..