package com.walker.push.rocketmq; import com.walker.infrastructure.utils.StringUtils; import org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; /** * 消息队列,环境隔离增强Bean配置,如果设置环境参数,则会自动在主题后面追加参数。 *
 *     如:chat_topic_dev, chat_topic_prod
 * 
* @author 时克英 * @date 2023-09-18 */ @Deprecated public class EnvironmentIsolationPostProcessor implements BeanPostProcessor { /** * 在装载Bean之前实现参数修改 */ @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if(bean instanceof DefaultRocketMQListenerContainer){ DefaultRocketMQListenerContainer container = (DefaultRocketMQListenerContainer) bean; //拼接Topic if(enabledIsolation && StringUtils.hasText(environmentName)){ container.setTopic(String.join(StringUtils.STRING_UNDERLINE, container.getTopic(), environmentName)); } return container; } return bean; } public void setEnabledIsolation(boolean enabledIsolation) { this.enabledIsolation = enabledIsolation; } public void setEnvironmentName(String environmentName) { this.environmentName = environmentName; } // @Value("${rocketmq.enhance.enabledIsolation:true}") private boolean enabledIsolation = true; // @Value("${rocketmq.enhance.environment:''}") private String environmentName = StringUtils.EMPTY_STRING; }