| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package com.fdkankan.modeling.config;
- import com.fdkankan.modeling.mq.BuildSceneReceiver;
- import lombok.extern.log4j.Log4j2;
- import org.springframework.amqp.core.Queue;
- 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.Value;
- import org.springframework.beans.factory.config.ConfigurableBeanFactory;
- import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Scope;
- @Log4j2
- @Configuration
- public class RabbitConfig {
- @Value("${spring.rabbitmq.host}")
- private String host;
- @Value("${spring.rabbitmq.port}")
- private int port;
- @Value("${spring.rabbitmq.username}")
- private String username;
- @Value("${spring.rabbitmq.password}")
- private String password;
- @Value("${rabbitmq.queue}")
- private String queue;
- @Bean
- public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() {
- SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
- factory.setConnectionFactory(connectionFactory());
- factory.setPrefetchCount(1);
- return factory;
- }
- @Bean
- public ConnectionFactory connectionFactory() {
- CachingConnectionFactory connectionFactory = new CachingConnectionFactory(host,port);
- connectionFactory.setUsername(username);
- connectionFactory.setPassword(password);
- connectionFactory.setVirtualHost("/");
- connectionFactory.setPublisherConfirms(true);
- return connectionFactory;
- }
- @Bean
- @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
- public RabbitTemplate rabbitTemplate() {
- return new RabbitTemplate(connectionFactory());
- }
- @Bean
- public Queue workQueue() {
- return new Queue(queue);
- }
- @Bean
- @ConditionalOnProperty(name = "rabbitmq.queue.enable",havingValue = "true")
- public BuildSceneReceiver buildSceneReceiver1() {
- return new BuildSceneReceiver();
- }
- }
|