package com.easyooo.framework.support.rocketmq;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
import com.alibaba.rocketmq.client.producer.DefaultMQProducer;
/**
* RocketMQ 消息生产者工厂Bean, 该类支持配置所有的参数,
* 仅修改了producerGroup属性对应的配置项为 applicationName
*
* @author Killer
*/
public class ProducerFactoryBean extends DefaultMQProducer implements InitializingBean, DisposableBean,
FactoryBean<DefaultMQProducer> {
private String applicationName;
@Override
public void afterPropertiesSet() throws Exception {
setProducerGroup(applicationName);
start();
}
@Override
public DefaultMQProducer getObject() throws Exception {
return this;
}
@Override
public Class<?> getObjectType() {
return DefaultMQProducer.class;
}
@Override
public boolean isSingleton() {
return true;
}
@Override
public void destroy() throws Exception {
shutdown();
}
public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}
}