ExchangeConfig.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package com.fdkankan.rabbitmq.config;
  2. import com.fdkankan.rabbitmq.constant.RabbitMQConstant;
  3. import org.springframework.amqp.core.DirectExchange;
  4. import org.springframework.amqp.core.FanoutExchange;
  5. import org.springframework.amqp.core.TopicExchange;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. @Configuration
  9. public class ExchangeConfig {
  10. /**
  11. * 交换机说明:
  12. * durable="true" rabbitmq重启的时候不需要创建新的交换机
  13. * auto-delete 表示交换机没有在使用时将被自动删除 默认是false
  14. * direct交换器相对来说比较简单,匹配规则为:如果路由键匹配,消息就被投送到相关的队列
  15. * topic交换器你采用模糊匹配路由键的原则进行转发消息到队列中
  16. * fanout交换器中没有路由键的概念,他会把消息发送到所有绑定在此交换器上面的队列中。
  17. */
  18. @Bean(name = RabbitMQConstant.EXCHANGE_DIRECT)
  19. public DirectExchange directExchange() {
  20. return new DirectExchange(RabbitMQConstant.EXCHANGE_DIRECT, true, false);
  21. }
  22. @Bean(name = RabbitMQConstant.EXCHANGE_WORK)
  23. public DirectExchange workExchange() {
  24. return new DirectExchange(RabbitMQConstant.EXCHANGE_WORK, true, false);
  25. }
  26. @Bean(name = RabbitMQConstant.EXCHANGE_TOPIC)
  27. public TopicExchange topicExchange() {
  28. return new TopicExchange(RabbitMQConstant.EXCHANGE_TOPIC, true, false);
  29. }
  30. @Bean(name = RabbitMQConstant.EXCHANGE_FANOUT)
  31. public FanoutExchange fanoutExchange() {
  32. return new FanoutExchange(RabbitMQConstant.EXCHANGE_FANOUT, true, false);
  33. }
  34. }