package com.yiqiniu.easytrans.queue.impl.ons; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.yiqiniu.easytrans.queue.consumer.EasyTransMsgConsumer; import com.yiqiniu.easytrans.queue.producer.EasyTransMsgPublisher; import com.yiqiniu.easytrans.serialization.ObjectSerializer; /** * @author xudeyou */ @Configuration @ConditionalOnProperty(name="easytrans.queue.ons.enabled",havingValue="true",matchIfMissing=true) @EnableConfigurationProperties(OnsQueueProperties.class) public class OnsQueueConfiguration { @Value("${spring.application.name}") private String applicationName; @Bean @ConditionalOnMissingBean(EasyTransMsgConsumer.class) public EasyTransMsgConsumer onsEasyTransMsgConsumerImpl(OnsQueueProperties properties, ObjectSerializer serializer){ return new OnsEasyTransMsgConsumerImpl(properties.getConsumer(),serializer); } @Bean @ConditionalOnMissingBean(EasyTransMsgPublisher.class) public EasyTransMsgPublisher easyTransMsgPublisher(OnsQueueProperties properties, ObjectSerializer serializer){ return new OnsEasyTransMsgPublisherImpl(properties.getPublisher(), serializer); } }