当前位置: 首页 > news >正文

网络设计网站建设类网站模板孔宇seo

网络设计网站建设类网站模板,孔宇seo,深圳今日最新疫情,服装设计师接单网站项目中使用了mq,kafka两种消息队列进行发送数据,为了避免硬编码,在项目中通过不同的配置文件自动识别具体消息队列策略。这里整理两种实施方案,仅供参考! 方案一:创建一个工具类,然后根据配置文…

项目中使用了mq,kafka两种消息队列进行发送数据,为了避免硬编码,在项目中通过不同的配置文件自动识别具体消息队列策略。这里整理两种实施方案,仅供参考!

方案一:创建一个工具类,然后根据配置文件来返回具体的IBase实现类

1.IBaseService

/*** 发送数据接口*/
public interface IBaseService {void send();
}

2.KafkaServiceImpl

@Service
public class KafkaServiceImpl implements IBaseService {@AutowiredMyConfiguration myConfiguration;@Overridepublic void send() {System.out.println("调用Kafka接口发送数据!");myConfiguration.init("-------------Kafka-------------");}
}

3.MQServiceImpl

@Service
public class MQServiceImpl implements IBaseService {@AutowiredMyConfiguration myConfiguration;@Overridepublic void send() {System.out.println("调用MQ接口,发送数据!");myConfiguration.init("-------------MQ-----------");}
}

4.SendMessageUtil

/*** 根据不同配置文件,选择发送消息工具类*/
@Component
public class SendMessageUtil {//message.type在application.yaml,":kafka" 设置默认值为kafka@Value("${message.type:kafka}")private String type;@AutowiredKafkaServiceImpl kafkaService;@AutowiredMQServiceImpl mqService;public IBaseService get(){if (type.equals("kafka"))return kafkaService;elsereturn mqService;}
}

5.方案一单元测试及测试结果

application.yaml

message:type: kafka
	@AutowiredSendMessageUtil sendMessageUtil;@Testvoid contextLoadsTwo() {IBaseService tempBaseService = sendMessageUtil.get();tempBaseService.send();}

请添加图片描述

方案二:@Conditional注解根据配置文件注入不同的bean对象

1.KafkaCondition

/*** Kafka推送方式*/
public class KafkaCondition implements Condition {@Overridepublic boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {Environment environment = context.getEnvironment();String type = environment.getProperty("message.type");if (type.contains("kafka")){return true;}return false;}
}

2.KafkaServiceImpl上面加上@Conditional(KafkaCondition.class)

3.MQCondition

/*** MQ推送方式*/
public class MQCondition implements Condition {@Overridepublic boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {Environment environment = context.getEnvironment();String type = environment.getProperty("message.type");if (type.contains("mq")){return true;}return false;}
}

4.MQServiceImpl上面加上@Conditional(MQCondition.class)

5.方案二单元测试及测试结果

application.yaml

message:type: kafka
// 注意:运行contextLoadsTwo测试方法时候,需要将iBaseService全部注释掉,否则会报错// 也要将KafkaServiceImpl和MQServiceImpl上面@Conditional注释掉@AutowiredSendMessageUtil sendMessageUtil;@Testvoid contextLoadsTwo() {IBaseService tempBaseService = sendMessageUtil.get();tempBaseService.send();}

请添加图片描述

6.项目结构及源码

源码奉上,欢迎star!
MyIdea
在这里插入图片描述

http://www.hkea.cn/news/569571/

相关文章:

  • 桂林市工程建设项目招标网站莆田百度快照优化
  • 金华网站建设大型网页建设农产品网络营销
  • wordpress free cdn长沙百度快速优化
  • 网页界面设计首页seo快速优化软件网站
  • 和凡科网类似的网站四川省人民政府
  • 北辰网站建设如何推广引流
  • ps网页模板网站seo外包公司
  • 常平镇仿做网站快速排名刷
  • 青浦建设网站公司app推广代理加盟
  • wordpress 在线pdf优化关键词的正确方法
  • 网站悬浮窗口网站关键词全国各地的排名情况
  • 做网站得叫什么优化关键词排名
  • 丰县住房与城乡建设部网站太原网站制作优化seo公司
  • 微信如何做微商城网站建设手机网站智能建站
  • 网站尾部分页数字怎么做推广app大全
  • 建筑设计软件有哪些优化网站建设
  • 网站开发 word文件预览医疗器械龙头股
  • 电子商务网站建设花费南宁百度seo排名价格
  • 做公司网站要注意哪些问题真正免费建站网站
  • 在线服务器代理杭州seo网络公司
  • wordpress邮件订阅seo技术外包
  • 深圳营销网站建站公司搜索引擎关键词的工具
  • 做网站如何网站考虑优化游戏推广员是诈骗吗
  • 公众号做视频网站吗关键词排名怎么做上首页
  • 重庆做网站价格优化软件下载
  • 如何做网站镜像今日最火的新闻
  • 水果网站开发所需的成本市场营销实际案例
  • 无锡市新吴区住房和建设交通局网站西安百度关键词包年
  • 网站平台方案设计seo上首页
  • 郑州做网站的联系方式搜狗友链交换