Browse Source

fix: mq注入修改

Marko552 3 years ago
parent
commit
0c3f8d447d

+ 23 - 3
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/infrastructure/config/RabbitmqConfig.java

@@ -6,10 +6,12 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.core.Message;
 import org.springframework.amqp.core.Queue;
 import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
+import org.springframework.amqp.rabbit.connection.ConnectionFactory;
 import org.springframework.amqp.rabbit.connection.CorrelationData;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -33,12 +35,30 @@ public class RabbitmqConfig {
 		return new Queue(TableStoreBatchUpdateConsumer.TABLE_STORE_BATCH_UPDATE_QUEUE);
 	}
 
-	@Autowired
-	private CachingConnectionFactory factory;
+	@Value("${spring.rabbitmq.addresses}")
+	private String addresses;
+	@Value("${spring.rabbitmq.username}")
+	private String username;
+	@Value("${spring.rabbitmq.password}")
+	private String password;
+	@Value("${spring.rabbitmq.virtual-host}")
+	private String virtualHost;
+
+	@Bean("qmsConnectionFactory")
+	public ConnectionFactory connectionFactory() {
+		CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
+		connectionFactory.setAddresses(addresses);
+		connectionFactory.setUsername(username);
+		connectionFactory.setPassword(password);
+		connectionFactory.setVirtualHost(virtualHost);
+		connectionFactory.setPublisherConfirmType(CachingConnectionFactory.ConfirmType.SIMPLE);
+		connectionFactory.setPublisherReturns(true);
+		return connectionFactory;
+	}
 
 	@Bean(name = "qmsRabbitTemplate")
 	public RabbitTemplate rabbitTemplate(){
-		RabbitTemplate template = new RabbitTemplate(factory);
+		RabbitTemplate template = new RabbitTemplate(this.connectionFactory());
 		template.setMessageConverter(new Jackson2JsonMessageConverter());
 		template.setMandatory(true);
 		template.setConfirmCallback((CorrelationData correlationData, boolean ack, String cause) ->