• springboot-整合rabbitmq


    一、maven的依赖

      

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.7.RELEASE</version>
        </parent>
        <properties>
            <java.version>1.8</java.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
           
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <!-- 添加springboot对amqp的支持 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-amqp</artifactId>
            </dependency>
            
          
        </dependencies>

    二、yml的配置

      

    spring:            
      rabbitmq:
        host: 127.0.0.1
        port: 5672
        username: guest
        password: 123456
        virtualHost: /
        publisher-returns: true  
        publisher-confirms: true  
        listener:
          direct:
            prefetch: 100
            concurrency: 200
            max-concurrency: 300
           

    三、配置类

      

    import org.springframework.amqp.core.Binding;
    import org.springframework.amqp.core.BindingBuilder;
    import org.springframework.amqp.core.DirectExchange;
    import org.springframework.amqp.core.FanoutExchange;
    import org.springframework.amqp.core.HeadersExchange;
    import org.springframework.amqp.core.Queue;
    import org.springframework.amqp.core.TopicExchange;
    import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
    import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
    import org.springframework.amqp.rabbit.connection.ConnectionFactory;
    import org.springframework.amqp.rabbit.core.RabbitTemplate;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    
    import lombok.extern.slf4j.Slf4j;
    
    @Configuration
    @Slf4j
    public class RabbitConfig {
        
        
            @Value("${spring.rabbitmq.publisher-confirms}")
            private boolean publisherConfirms = true;
    
            @Bean(name="secondConnectionFactory")
            public ConnectionFactory secondConnectionFactory(
              @Value("${spring.rabbitmq.host}") String host, 
              @Value("${spring.rabbitmq.port}") String port,
              @Value("${spring.rabbitmq.username}") String username,
              @Value("${spring.rabbitmq.password}") String password ){
                 CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
                 connectionFactory.setAddresses(host+":"+port);
                 connectionFactory.setUsername(username);
                 connectionFactory.setPassword(password);
              
                
                 connectionFactory.setPublisherConfirms(publisherConfirms);
                 return connectionFactory;  
                }
        
    
                @Bean(name="rabbitTemplate")
                public RabbitTemplate  rabbitTemplate(@Qualifier("secondConnectionFactory") 
                        ConnectionFactory connectionFactory
                        ){
                             RabbitTemplate rabbitTemplate= new RabbitTemplate(connectionFactory);
                             return rabbitTemplate;
                    }
    
                    @Bean(name="rabbitFactory")
                    public SimpleRabbitListenerContainerFactory rabbitFactory(
                                 SimpleRabbitListenerContainerFactoryConfigurer configurer,
                                 @Qualifier("secondConnectionFactory") ConnectionFactory connectionFactory   
                                 ) {
                    
                        SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
                    
                        configurer.configure(factory, connectionFactory);
                    
                        return factory;
                        }   
    }
  • 相关阅读:
    RocketMQ4.5.2在centos7的安装
    android 9.x 实现应用内更新安装
    android listview 禁止滚动
    Failed to resolve loader: less-loader
    yarn的 文件名、目录名或卷标语法不正确
    Interceptor无法用Autowired自动注入Bean
    STL文件格式研究
    在C#中用COM操作CAD
    AVEVA CSG 几何图形输出接口
    PDMS数据库快速索引查询
  • 原文地址:https://www.cnblogs.com/hellohero55/p/11967272.html
Copyright © 2020-2023  润新知