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); } @Bean public DirectExchange onlineTransferExchange() { return new DirectExchange(QueueEnum.ONLINE_TRANSFER.getExchange()); } @Bean public Queue onlineTransferQueue() { return new Queue(QueueEnum.ONLINE_TRANSFER.getQueue()); } @Bean public Binding defaultBind() { return BindingBuilder.bind(onlineTransferQueue()).to(onlineTransferExchange()).with(QueueEnum.ONLINE_TRANSFER.getRoute()); } @Bean public DirectExchange distribProfitExchange() { return new DirectExchange(QueueEnum.DISTRIB_PROFIT.getExchange()); } @Bean public Queue distribProfitQueue() { return new Queue(QueueEnum.DISTRIB_PROFIT.getQueue()); } @Bean public Binding distribProfitBind() { return BindingBuilder.bind(distribProfitQueue()).to(distribProfitExchange()).with(QueueEnum.DISTRIB_PROFIT.getRoute()); } // === 用户购买奖励 start === @Bean public DirectExchange userBuyRewardExchange() { return new DirectExchange(QueueEnum.USER_BUY_REWARD.getExchange()); } @Bean public Queue userBuyRewardQueue() { return new Queue(QueueEnum.USER_BUY_REWARD.getQueue()); } @Bean public Binding userBuyRewardBind() { return BindingBuilder.bind(userBuyRewardQueue()).to(userBuyRewardExchange()).with(QueueEnum.USER_BUY_REWARD.getRoute()); } // === 用户购买奖励 end === // === nft卡牌盲盒 start === @Bean public DirectExchange nftBoxExchange() { return new DirectExchange(QueueEnum.NFT_BOX.getExchange()); } @Bean public Queue nftBoxQueue() { return new Queue(QueueEnum.NFT_BOX.getQueue()); } @Bean public Binding nftBoxBind() { return BindingBuilder.bind(nftBoxQueue()).to(nftBoxExchange()).with(QueueEnum.NFT_BOX.getRoute()); } // === nft卡牌盲盒 end === }