spring boot 和activimq 整合

添加maven依赖

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

<dependency>
   <groupId>org.apache.activemq</groupId>
   <artifactId>activemq-web</artifactId>
   <version>5.14.0</version>
</dependency>

创建配置类 ActiveMqconfig

@Configuration
public class ActiveMqConfig {

    @Bean
    public ServletRegistrationBean ajaxServletRegistration() {
        ServletRegistrationBean registration = new ServletRegistrationBean(new AjaxServlet());
        registration.setLoadOnStartup(1);
        //registration.setEnabled(true);
        registration.addUrlMappings("/amq/*");
        return registration;
    }


    @Bean
    public ServletContextInitializer initializer() {
        return new ServletContextInitializer() {

            @Override
            public void onStartup(ServletContext servletContext) throws ServletException {
                servletContext.setInitParameter("org.apache.activemq.brokerURL",    "tcp://localhost:61616");
            }
        };
    }
}

监听mq

@Component
public class ActiveMqServer {

    @JmsListener(destination = "topic")
    public void receiveTopic(String message) {
        System.out.println("监听topic=============监听topic");
        System.out.println(message);

    }

    @JmsListener(destination = "queue")
    public void receiveQueue(String message) {
        System.out.println("监听queue=============监听queue");
        System.out.println(message);

    }
}

发送消息

@Autowired
private JmsTemplate jmsTemplate;
jmsTemplate.convertAndSend(new ActiveMQTopic("topic"),"发送的topic数据!"+Math.random());


html 接收消息 和 发送

<link rel="stylesheet" th:href="@{/css/css.css}"/>
<script type="text/javascript" th:src="@{/js/jquery-1.4.2.min.js}"></script>
<script type="text/javascript" th:src="@{/js/amq_jquery_adapter.js}"></script>
<script type="text/javascript" th:src="@{/js/amq.js}"></script>

<body>
测试<br/>
<span id="test"></span><br>
<button type="button" id="send">发送</button>
</body>
<script th:inline="javascript">
    window.onload = function () {
        var msg = "<msg type='common'>"
            + "<id>msg1</id>"
            + "<content>This is test content"+Math.random()+"</content>"
            + "</msg>";

        var amq = org.activemq.Amq;
        amq.init({uri: '/activemq/amq', logging: false, timeout: 45, clientId: 'test1'});
        var myHandler = {
            rcvMessage: function (message) {
                //接收到消息后,自己的业务处理逻辑
                console.log(message);
                $("#test").text(message.data);
            }
        };
        var myHandler2 = {
            rcvMessage: function (message) {
                //接收到消息后,自己的业务处理逻辑
                console.log(message);
                $("#test").text(message.data);
            }
        };
        amq.addListener('test1', 'topic://topic', myHandler.rcvMessage);
        amq.addListener('test1', 'topic://TEST', myHandler2.rcvMessage);
        //test1为消费者的一个ID,接受到消息回调时会用到作为标识
        //topic://msg表示主题订阅目的地
        $("#send").click(function () {
                amq.sendMessage("topic://TEST", msg);
        });
    };
</script>



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页