@Configuration
public class RocketMqConfig {
private static final Logger logger = LoggerFactory.getLogger(RocketMqConfig.class);
private static TransactionMQProducer transactionMQProducer;
@Bean
public TransactionMQProducer transactionMQProducer(Environment environment) {
if (transactionMQProducer != null)
return transactionMQProducer;
transactionMQProducer = new TransactionMQProducer();
transactionMQProducer.setNamesrvAddr(environment.getProperty("rocketmq.nameServerAddr"));
transactionMQProducer.setProducerGroup(environment.getProperty("rocketmq.producerGroupName"));
try {
transactionMQProducer.start();
} catch (MQClientException e) {
logger.error("transactionMQProducer init failure, cause by :[{}]", e.getMessage());
}
return transactionMQProducer;
}
@PreDestroy
public void release() {
if (transactionMQProducer != null)
transactionMQProducer.shutdown();
}
}