zoukankan      html  css  js  c++  java
  • SpringBoot整合ActiveMQ

    点对点(P2P)

      创建springboot项目

        

      导入依赖

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

      生产者

        步骤一:applicationContext.properties文件

    spring.activemq.broker-url=tcp://127.0.0.1:61616
    spring.activemq.user=admin
    spring.activemq.password=admin
    server.port=8080

        步骤二:创建生产者

    package com.wn.p2p;
    
    import org.apache.activemq.command.ActiveMQQueue;
    import org.springframework.jms.core.JmsTemplate;
    import org.springframework.stereotype.Component;
    
    import javax.annotation.Resource;
    
    @Component
    public class P2Pprovider {
        //注入JMSTemplate
        @Resource
        private JmsTemplate jmsTemplate;
    
        public void setMessage(){
            //点对点创建队列
            ActiveMQQueue queue=new ActiveMQQueue("boot_queue");
            jmsTemplate.convertAndSend(queue,"消息123");
        }
    }

        步骤三:创建controller

    package com.wn.p2p;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    
    @RestController
    public class P2PController {
        @Resource
        private P2Pprovider p2Pprovider;
    
        @RequestMapping("/setMessage")
        public String setMessage(){
            p2Pprovider.setMessage();
            return "success";
        }
    }

        步骤四:启动

          

           

      消费者  

        步骤一:application.properties文件

    spring.activemq.broker-url=tcp://127.0.0.1:61616
    spring.activemq.user=admin
    spring.activemq.password=admin
    server.port=8081

        步骤二:创建消费者

    package com.wn;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.jms.annotation.JmsListener;
    
    import javax.jms.JMSException;
    import javax.jms.TextMessage;
    
    @SpringBootApplication
    public class P2pConsumerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(P2pConsumerApplication.class, args);
        }
    
        @JmsListener(destination = "boot_queue")
        public void getMessage(TextMessage message) throws JMSException {
            System.out.println("接收到的信息:"+message.getText());
        }
    }

        步骤三:启动

          

          

    发布/订阅(Pub/Sub)

      结构

        

      导入依赖  

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

      消费者

        步骤一:applicationContext.properties文件

    spring.activemq.broker-url=tcp://127.0.0.1:61616
    spring.activemq.user=admin
    spring.activemq.password=admin
    server.port=8082
    
    #topic配置
    spring.jms.pub-sub-domain=true

        步骤二:创建消费者

    package com.wn;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    import org.springframework.jms.annotation.JmsListener;
    import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
    import org.springframework.jms.config.JmsListenerContainerFactory;
    
    import javax.jms.ConnectionFactory;
    import javax.jms.JMSException;
    import javax.jms.TextMessage;
    
    @SpringBootApplication
    public class PubSubConsumerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(PubSubConsumerApplication.class, args);
        }
    
        //springboot默认只配置queue类型消息,如果要使用topic类型的消息,则需要配置该bean
       /* @Bean
        public JmsListenerContainerFactory jmsTopicListenerContainerFactory(ConnectionFactory connectionFactory){
            DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
            factory.setConnectionFactory(connectionFactory);
            //这里必须设置为true,false则表示是queue类型
            factory.setPubSubDomain(true);
            return factory;
        }*/
    
        //消费者消费消息
        @JmsListener(destination = "boot_topic")
        public void getMessage(TextMessage message) throws JMSException {
            System.out.println("接收到消息:"+message.getText());
        }
    }

        步骤三:启动

           

      生产者

        步骤一:applicationContext.properties文件

    spring.activemq.broker-url=tcp://127.0.0.1:61616
    spring.activemq.user=admin
    spring.activemq.password=admin
    server.port=8083

        步骤二:创建生产者

    package com.wn.pub_sub;
    
    import org.apache.activemq.command.ActiveMQTopic;
    import org.springframework.jms.core.JmsTemplate;
    import org.springframework.stereotype.Component;
    
    import javax.annotation.Resource;
    
    @Component
    public class Pub_Sub_Provider {
    
        @Resource
        private JmsTemplate jmsTemplate;
    
        public void setMessage(){
            //创建主题
            ActiveMQTopic topic=new ActiveMQTopic("boot_topic");
            //springboot默认是队列,如果需要如下设置
            jmsTemplate.setPubSubDomain(true);
            //发送消息
            jmsTemplate.convertAndSend(topic,"消息456");
        }
    
    }

        步骤三:创建controller

    package com.wn.pub_sub;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    
    @RestController
    public class Pub_Sub_Controller {
        @Resource
        private Pub_Sub_Provider provider;
    
        @RequestMapping("/setMessage")
        public String setMessage(){
            provider.setMessage();
            return "success";
        }
    }

        步骤四:启动

          

          

          此时可以查看消费者是否成功接收到消息

          

  • 相关阅读:
    cocos2dx 菜鸟实习生学习篇(四) 锚点的理解
    cocos2dx 菜鸟进阶篇(三) scrollView(下)
    2012年终总结!
    cocos2dx 菜鸟进阶篇(二) 重力感应
    cocos2dx 菜鸟进阶篇(三) ScrollView(上)
    cocos2dx 菜鸟进阶篇(一) 在游戏中添加music
    Mobile Web项目中碰到的问题及解决
    struts验证框架的使用
    错误解决办法收集
    JSONP跨域访问实现登录验证
  • 原文地址:https://www.cnblogs.com/wnwn/p/12308028.html
Copyright © 2011-2022 走看看