RabbitConfig.java 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package org.jeecg.config;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.springframework.amqp.core.Queue;
  4. import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
  5. import org.springframework.amqp.rabbit.connection.ConnectionFactory;
  6. import org.springframework.amqp.rabbit.core.RabbitTemplate;
  7. import org.springframework.beans.factory.annotation.Value;
  8. import org.springframework.beans.factory.config.ConfigurableBeanFactory;
  9. import org.springframework.context.annotation.Bean;
  10. import org.springframework.context.annotation.Configuration;
  11. import org.springframework.context.annotation.Scope;
  12. @Configuration
  13. @Slf4j
  14. public class RabbitConfig {
  15. @Value("${spring.rabbitmq.host}")
  16. private String host;
  17. @Value("${spring.rabbitmq.port}")
  18. private int port;
  19. @Value("${spring.rabbitmq.username}")
  20. private String username;
  21. @Value("${spring.rabbitmq.password}")
  22. private String password;
  23. public static final String EXCHANGE_A = "my-mq-exchange_A";
  24. public static final String EXCHANGE_B = "my-mq-exchange_B";
  25. public static final String EXCHANGE_C = "my-mq-exchange_C";
  26. public static final String QUEUE_A = "QUEUE_A";
  27. public static final String QUEUE_B = "QUEUE_B";
  28. public static final String QUEUE_C = "QUEUE_C";
  29. public static final String ROUTINGKEY_A = "spring-boot-routingKey_A";
  30. public static final String ROUTINGKEY_B = "spring-boot-routingKey_B";
  31. public static final String ROUTINGKEY_C = "spring-boot-routingKey_C";
  32. @Bean
  33. public ConnectionFactory connectionFactory() {
  34. CachingConnectionFactory connectionFactory = new CachingConnectionFactory(host, port);
  35. connectionFactory.setUsername(username);
  36. connectionFactory.setPassword(password);
  37. connectionFactory.setVirtualHost("/");
  38. connectionFactory.setPublisherConfirms(true);
  39. return connectionFactory;
  40. }
  41. /**
  42. * 必须是prototype类型
  43. */
  44. @Bean
  45. @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
  46. public RabbitTemplate rabbitTemplate() {
  47. RabbitTemplate template = new RabbitTemplate(connectionFactory());
  48. return template;
  49. }
  50. @Bean
  51. public Queue helloQueue() {
  52. return new Queue("hello");
  53. }
  54. }