package cc.mrbird.febs.rabbit; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.DirectExchange; import org.springframework.amqp.core.Queue; import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; import javax.annotation.Resource; /** * @author wzy * @date 2022-05-31 **/ @Configuration public class RabbitConfiguration { @Resource private ConnectionFactory connectionFactory; @Bean @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public RabbitTemplate rabbitTemplate() { return new RabbitTemplate(connectionFactory); } // === start === @Bean public DirectExchange memberDynamicExchange() { return new DirectExchange(QueueEnum.FPD_MEMBER_DYNAMIC_PERK.getExchange()); } @Bean public Queue memberDynamicQueue() { return new Queue(QueueEnum.FPD_MEMBER_DYNAMIC_PERK.getQueue()); } @Bean public Binding memberDynamicBind() { return BindingBuilder.bind(memberDynamicQueue()).to(memberDynamicExchange()).with(QueueEnum.FPD_MEMBER_DYNAMIC_PERK.getRoute()); } // === end === // === start === @Bean public DirectExchange memberDirectExchange() { return new DirectExchange(QueueEnum.FPD_MEMBER_DIRECT_PERK.getExchange()); } @Bean public Queue memberDirectQueue() { return new Queue(QueueEnum.FPD_MEMBER_DIRECT_PERK.getQueue()); } @Bean public Binding memberDirectBind() { return BindingBuilder.bind(memberDirectQueue()).to(memberDirectExchange()).with(QueueEnum.FPD_MEMBER_DIRECT_PERK.getRoute()); } // === end === // === start === @Bean public DirectExchange nodeJiliBuchangExchange() { return new DirectExchange(QueueEnum.FPD_NODE_JILI_BUCHANG_PERK.getExchange()); } @Bean public Queue nodeJiliBuchangQueue() { return new Queue(QueueEnum.FPD_NODE_JILI_BUCHANG_PERK.getQueue()); } @Bean public Binding nodeJiliBuchangBind() { return BindingBuilder.bind(nodeJiliBuchangQueue()).to(nodeJiliBuchangExchange()).with(QueueEnum.FPD_NODE_JILI_BUCHANG_PERK.getRoute()); } // === end === // === start === @Bean public DirectExchange teamPerkExchange() { return new DirectExchange(QueueEnum.FPD_TEAM_PERK.getExchange()); } @Bean public Queue teamPerkQueue() { return new Queue(QueueEnum.FPD_TEAM_PERK.getQueue()); } @Bean public Binding teamPerkBind() { return BindingBuilder.bind(teamPerkQueue()).to(teamPerkExchange()).with(QueueEnum.FPD_TEAM_PERK.getRoute()); } // === end === // === start === @Bean public DirectExchange memberLevelExchange() { return new DirectExchange(QueueEnum.FPD_MEMBER_LEVEL.getExchange()); } @Bean public Queue memberLevelQueue() { return new Queue(QueueEnum.FPD_MEMBER_LEVEL.getQueue()); } @Bean public Binding memberLevelBind() { return BindingBuilder.bind(memberLevelQueue()).to(memberLevelExchange()).with(QueueEnum.FPD_MEMBER_LEVEL.getRoute()); } // === end === }