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

深圳网站建设有市场吗丰台网站开发公司

深圳网站建设有市场吗,丰台网站开发公司,注册域名后怎么建网站,搜索引擎优化工作主要做好哪些方面项目中使用了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.yayakq.cn/news/803288/

相关文章:

  • 上海恒鑫网站建设诏安县城乡建设局网站
  • 上海做网站比较好的公司asp.net网站建设项目实战资料
  • 网站后台管理系统怎么添加框企业网站的分类
  • 自己做视频网站能赚钱吗大庆建设银行网站
  • 接活做图网站网站买源代码
  • 网站源文件修改wordpress 表情符号
  • 电商pc网站建设方案北京网站备案核验单
  • 诚信网站建设的意义中国公司排行榜
  • 国外做动运服装的网站徐州网站关键词
  • 杭州电商网站平台开发公司九九建筑网
  • 小程序如何推广引流番禺seo培训
  • 石家庄视频剪辑培训学校seo营销工具
  • 昆山便宜做网站昆明网站建设seo公司哪家好
  • 网站收录很少却有排名wordpress themes 目录
  • 东莞网站推广模式效果图制作软件app
  • php网站出现乱码如何帮客户做网站
  • 大众点评网站团购怎么做电子商务与网站建设实践论文
  • 网站建设公司 技术评估石家庄建立网站的公司
  • 怎么设置网站栏目长沙做网站的费用
  • 用asp做网站流程公司网站维护一般需要做什么
  • 电子商务网站建设与维护的考试黄金网站app大全
  • 机械类毕业设计代做网站推荐node.js做企业网站
  • 肥乡县建设局网站百度指数网
  • 我的世界服务器如何做充钱网站加工平台用什么材料
  • 网站建设需要投资多少长沙网站设计公司推荐
  • 工业信息部网站备案网站公司网站建设
  • 那个网站做代买中国商标网注册官网
  • 网站建设费如何会计处理什么是网络营销网络营销与电商营销有什么区别
  • 服务器上网站建设成都plc培训机构哪家最好
  • 伪静态 网站如何扫描网站建设天地心