|
@@ -0,0 +1,58 @@
|
|
|
+package com.usky.dxtop.service.config;
|
|
|
+
|
|
|
+import lombok.Data;
|
|
|
+import org.springframework.amqp.core.*;
|
|
|
+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.amqp.support.converter.Jackson2JsonMessageConverter;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.boot.autoconfigure.amqp.RabbitProperties;
|
|
|
+import org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer;
|
|
|
+import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
|
+import org.springframework.context.annotation.Bean;
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author yq
|
|
|
+ * @date 2021/9/7 17:14
|
|
|
+ */
|
|
|
+@Data
|
|
|
+@Configuration
|
|
|
+public class MqProperties {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RabbitProperties rabbitProperties;
|
|
|
+ public ConnectionFactory connectionFactory(String vHost) {
|
|
|
+ CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
|
|
|
+ connectionFactory.setHost(rabbitProperties.getHost());
|
|
|
+ connectionFactory.setPort(rabbitProperties.getPort());
|
|
|
+ connectionFactory.setUsername(rabbitProperties.getUsername());
|
|
|
+ connectionFactory.setPassword(rabbitProperties.getPassword());
|
|
|
+ connectionFactory.setVirtualHost(vHost);
|
|
|
+ return connectionFactory;
|
|
|
+ }
|
|
|
+
|
|
|
+ public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
|
|
|
+ return new RabbitTemplate(connectionFactory);
|
|
|
+ }
|
|
|
+
|
|
|
+ public SimpleRabbitListenerContainerFactory listenerFactory(
|
|
|
+ SimpleRabbitListenerContainerFactoryConfigurer configurer,
|
|
|
+ ConnectionFactory connectionFactory) {
|
|
|
+ SimpleRabbitListenerContainerFactory listenerContainerFactory = new SimpleRabbitListenerContainerFactory();
|
|
|
+ //设置手动ack
|
|
|
+ listenerContainerFactory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
|
|
|
+ configurer.configure(listenerContainerFactory, connectionFactory);
|
|
|
+ return listenerContainerFactory;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Jackson2JsonMessageConverter messageConverter() {
|
|
|
+ return new Jackson2JsonMessageConverter();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|