适合网站设计的gif图片怎样建个小公司的网站

web/2025/10/8 22:56:03/文章来源:
适合网站设计的gif图片,怎样建个小公司的网站,网站怎么做qq的授权登陆,公司组织机构框架图在上一篇文章中#xff0c;我们已经开始讨论基于消息的通信中的消费者驱动的合同测试 。 在今天的帖子中#xff0c;我们将在测试工具箱中包含另一个工具#xff0c;但是在此之前#xff0c;让我对显微镜下的系统进行快速回顾。 它有两项服务#xff0c; 订单服务和货运服… 在上一篇文章中我们已经开始讨论基于消息的通信中的消费者驱动的合同测试 。 在今天的帖子中我们将在测试工具箱中包含另一个工具但是在此之前让我对显微镜下的系统进行快速回顾。 它有两项服务 订单服务和货运服务 。 订单服务将消息/事件发布到消息队列然后运货服务从那里使用它们。 通过寻找合适的测试支架我们发现了Pact框架准确地说是Pact JVM 。 该协议提供了编写消费者和生产者测试的简单明了的方法没有为不进行消费者驱动的合同测试提供任何借口。 但是该领域还有另一个参与者Spring Cloud Contract 这就是我们今天要讨论的内容。 首先 Spring Cloud Contract适合基于最佳的基于JVM的项目该项目建立在出色的Spring产品组合之上尽管您也可以使其在多语言场景中工作。 另外 Spring Cloud Contract采用的协作流程与Pact教给我们的协作流程略有不同这不一定是一件坏事。 让我们直接说清楚。 由于我们只研究消息传递因此Spring Cloud Contract要求我们要做的第一件事就是定义消息传递协议规范该规范是使用便捷的Groovy Contract DSL编写的。 package contracts org.springframework.cloud.contract.spec.Contract.make { name OrderConfirmed Event label order     input { createOrder() triggeredBy( createOrder() ) }     outputMessage { sentTo orders         body([ orderId: $(anyUuid()), paymentId: $(anyUuid()), amount: $(anyDouble()), street: $(anyNonBlankString()), city: $(anyNonBlankString()), state: $(regex( [AZ]{2} )), zip: $(regex( [0-9]{5} )), country: $(anyOf( USA , Mexico )) ])         headers { header( Content-Type , application/json ) } } } 它类似于我们已经熟悉的许多Pact规范如果您不是Groovy的忠实拥护者 那么为了使用Spring Cloud Contract 就不需要真正学习它了。 这里有趣的部分是triggeredBy和sentTo块基本上这些轮廓是如何被生成的消息或触发并且其中它应该分别着陆通道或队列名称。 在这种情况下 createOrder只是方法名称我们必须为其提供实现。 package com.example.order; import java.math.BigDecimal; import java.util.UUID; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureMessageVerifier; import org.springframework.integration.support.MessageBuilder; import org.springframework.messaging.MessageChannel; import org.springframework.test.context.junit4.SpringRunner; import com.example.order.event.OrderConfirmed; RunWith (SpringRunner. class ) SpringBootTest AutoConfigureMessageVerifier public class OrderBase { Autowired private MessageChannel orders;     public void createOrder() { final OrderConfirmed order new OrderConfirmed(); order.setOrderId(UUID.randomUUID()); order.setPaymentId(UUID.randomUUID()); order.setAmount( new BigDecimal( 102.32 )); order.setStreet( 1203 Westmisnter Blvrd ); order.setCity( Westminster ); order.setCountry( USA ); order.setState( MI ); order.setZip( 92239 ); orders.send( MessageBuilder .withPayload(order) .setHeader( Content-Type , application/json ) .build()); } } 不过还有一个小细节这些合同是由提供者或更确切地说生产者而不是消费者来管理的。 不仅如此生产者有责任为消费者发布所有存根以便他们能够针对其编写测试。 当然与Pact所采用的路径不同但是从好的方面来说针对生产者的测试套件是由Apache Maven / Gradle插件100生成的。 plugin groupId org.springframework.cloud/ groupId artifactId spring-cloud-contract-maven-plugin/ artifactId version 2.1.4.RELEASE/ version extensions true/ extensions configuration packageWithBaseClasses com.example.order/ packageWithBaseClasses / configuration / plugin 您可能已经注意到该插件将假定基本测试类必须提供createOrder方法实现的那些类位于com.example.order包中即我们放置OrderBase类的确切位置。 要完成设置我们需要向pom.xml文件中添加一些依赖项。 dependencyManagement dependencies dependency groupId org.springframework.cloud/ groupId artifactId spring-cloud-dependencies/ artifactId version Greenwich.SR4/ version type pom/ type scope import/ scope / dependency dependency groupId org.springframework.boot/ groupId artifactId spring-boot-dependencies/ artifactId version 2.1.10.RELEASE/ version type pom/ type scope import/ scope / dependency / dependencies / dependencyManagement dependencies dependency groupId org.springframework.cloud/ groupId artifactId spring-cloud-starter-contract-verifier/ artifactId scope test/ scope / dependency dependency groupId org.springframework.boot/ groupId artifactId spring-boot-starter-test/ artifactId scope test/ scope / dependency / dependencies 我们已经在生产者方面完成了 如果我们现在运行mvn clean install 将发生两件事。 首先您会注意到已经运行并通过了一些测试尽管我们没有编写任何测试但这些测试都是以我们的名义生成的。 ------------------------------------------------------- TESTS ------------------------------------------------------- Running com.example.order.OrderTest .... Results : Tests run: 1 , Failures: 0 , Errors: 0 , Skipped: 0 其次也将生成发布面向消费者的存根在这种情况下将其捆绑到order-service-messaging-contract-tests-0.0.1-SNAPSHOT-stubs.jar中 。 ... [INFO] [INFO] --- spring-cloud-contract-maven-plugin: 2.1 . 4 .RELEASE:generateStubs ( default -generateStubs) order-service-messaging-contract-tests --- .RELEASE:generateStubs ( [INFO] Files matching this pattern will be excluded from stubs generation [] [INFO] Files matching pattern will be excluded from stubs generation [] [INFO] Building jar: order-service-messaging-contract-tests- 0.0 . 1 -SNAPSHOT-stubs.jar [INFO] .... 太好了因此我们已经发布了消息传递合同规范和存根现在就在消费者的领域即Shipment Service 。 消费者最棘手的部分可能是配置所选的消息传递集成库。 在我们的情况下它将是Spring Cloud Stream但是也可以使用其他集成 。 了解Spring Cloud Contract在消费者方面的工作方式的最快方法是从头开始首先查看完整的示例测试套件。 RunWith (SpringRunner. class ) SpringBootTest AutoConfigureMessageVerifier AutoConfigureStubRunner ( ids com.example:order-service-messaging-contract-tests::stubs , stubsMode StubRunnerProperties.StubsMode.LOCAL ) public class OrderMessagingContractTest { Autowired private MessageVerifierMessage? verifier; Autowired private StubFinder stubFinder; Test public void testOrderConfirmed() throws Exception { stubFinder.trigger( order );         final Message? message verifier.receive( orders ); assertThat(message, notNullValue()); assertThat(message.getPayload(), isJson( allOf(List.of( withJsonPath( $.orderId ), withJsonPath( $.paymentId ), withJsonPath( $.amount ), withJsonPath( $.street ), withJsonPath( $.city ), withJsonPath( $.state ), withJsonPath( $.zip ), withJsonPath( $.country ) )))); } } 在顶部 AutoConfigureStubRunner引用生产者发布的存根有效地来自order-service-messaging-contract-tests-0.0.1-SNAPSHOT-stubs.jar存档中的存根 。 StubFinder通过调用stubFinder.trigger“ order”帮助我们为测试用例选择正确的存根并触发特定的消息传递合同验证流程。 “ order”值不是任意的它应该与分配给合同规范的标签匹配在我们的示例中我们将其定义为 package contracts org.springframework.cloud.contract.spec.Contract.make { ... label order ... } 这样测试应该看起来简单而直接触发流程验证消息是否已放入消息传递通道并满足消费者的期望。 从配置的角度来看我们只需要提供此消息通道即可运行测试。 SpringBootConfiguration public class OrderMessagingConfiguration { Bean PollableChannel orders() { return MessageChannels.queue().get(); } } 再说一次bean的名称orders不是一个随机选择它必须在合同规范中有很多目的地 package contracts org.springframework.cloud.contract.spec.Contract.make { ... outputMessage { sentTo orders ... } ... } 最后但并非最不重要的一点让我们枚举使用者方面所需的依赖关系幸运的是无需使用任何其他的Apache Maven或Gradle插件。 dependencyManagement dependencies dependency groupId org.springframework.cloud/ groupId artifactId spring-cloud-dependencies/ artifactId version Greenwich.SR4/ version type pom/ type scope import/ scope / dependency / dependencies / dependencyManagement dependencies dependency groupId org.springframework.cloud/ groupId artifactId spring-cloud-starter-contract-verifier/ artifactId scope test/ scope / dependency dependency groupId org.springframework.cloud/ groupId artifactId spring-cloud-starter-contract-stub-runner/ artifactId scope test/ scope / dependency dependency groupId org.springframework.cloud/ groupId artifactId spring-cloud-stream/ artifactId version 2.2.1.RELEASE/ version type test-jar/ type scope test/ scope classifier test-binder/ classifier / dependency / dependencies 在这里快速说明。 最后一个依赖关系是一个很重要的难题它带来了Spring Cloud Stream与Spring Cloud Contract的集成。 这样所有消费者都准备好了。 ------------------------------------------------------- TESTS ------------------------------------------------------- Running com.example.order.OrderMessagingContractTest ... Results : Tests run: 1 , Failures: 0 , Errors: 0 , Skipped: 0 要结束循环我们应该回顾消费者驱动的合同测试的核心承诺之一允许生产者在不破坏消费者的情况下发展合同。 实际上这意味着消费者可以将测试返回给生产者尽管这样做的轻率性与Spring Cloud Contract无关 。 原因很简单生产者是那些首先编写消息合同规范的人并且期望从这些规范中生成的测试无法抵御任何重大更改。 尽管如此对于生产者来说了解消费者如何使用他们的消息还是有很多好处的所以请给我一些想法。 满怀希望这是一个有趣的话题。 Spring Cloud Contract带来了将消费者驱动的合约测试应用于消息传递的不同观点。 它是Pact JVM的一种有吸引力的替代方法特别是如果您的应用程序和服务已经依赖Spring项目 。 与往常一样完整的项目资源可在Github上找到 。 翻译自: https://www.javacodegeeks.com/2019/12/spring-covered-again-consumer-driven-contract-testing-messaging-continued.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国外网站购物百度下载安装2021

微软Webcast课程下载软件iReaper正式登陆Android平台,我叫它iReaper for Android。目前正处于测试阶段,功能比较单一。 目前支持 1.视频下载 2.课程代码下载 3.讲义下载 4.问答下载 附上截图,敬请期待! 1.下载地址&#xff…

网站建设补贴wordpress 图床

文章目录 模板语法1、文本2、原始 HTML3、属性 Attribute4、使用 JavaScript 表达式 条件渲染1、v-if2、v-else3、v-show4、v-if vs v-show 的区别 列表渲染1、用 v-for 把一个数组映射为一组元素2、维护状态 事件处理1、监听事件 v-on2、事件处理方法3、内联处理器中的方法 表…

东莞知名网站推广网站后台怎么做下载链接

题目: 给你一个区间数组 intervals ,其中 intervals[i] [starti, endi] ,且每个 starti 都 不同 。 区间 i 的 右侧区间 可以记作区间 j ,并满足 startj > endi ,且 startj 最小化 。注意 i 可能等于 j 。 返回…

郑州网站建设程序朋友圈营销广告

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

收录好的网站有哪些网站建设的知名品牌

在本文中,我们将探讨如何使用Flask和Flask-JWT-Extended库来保护您的API免受跨站请求攻击(CSRF)。我们将首先简要介绍CSRF攻击的概念,然后详细说明如何使用Flask-JWT-Extended库来保护您的API。 什么是跨站请求攻击(C…

比赛网站开发wordpress 路由怎么配

servlet3异步在深入了解什么是异步Servlet之前,让我们尝试了解为什么需要它。 假设我们有一个Servlet,处理时间很长,如下所示。 LongRunningServlet.java package com.journaldev.servlet;import java.io.IOException; import java.io.Prin…

设计师常去网站成都网站建设案例单招网

--- 24.4.20 目录 1、什么是Bug? 2、什么是调试(Debug)? 3、Debug和Release 4、VS基础调试快捷键 4.1、环境准备 4.2、调试快捷键 5、监视和内存观察 5.1、监视窗口 5.2、内存窗口 6、调试举例1 7、调试举例2 8、调试…

网站建设优化规划书如何构建成交型网站

一、什么是Json?JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它是基于 JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999的一个子集。 JS…

app网站下载免费珠海网站建设公司有哪些

本文介绍了如何使用STM32驱动压力传感器进行实时监测。首先,我们会介绍压力传感器的工作原理和常见类型。然后,我们将介绍如何选择合适的STM32单片机和压力传感器组合。接下来,我们会详细讲解如何使用STM32驱动压力传感器进行数据采集和实时监…

一个主机建多少个网站wordpress md5解密

JAVA八股--redis 如何保证Redis和数据库数据一致性redisson实现的分布式锁的主从一致性Redis脑裂现象及解决方案介绍I/O多路复用模型undo log 和 redo log(没掌握MyISAM 和 InnoDB 有什么区别? 如何保证Redis和数据库数据一致性 关于异步通知中消息队列…

打字建站宝微信平台制作网站开发

使用 Tye 辅助开发 k8s 应用竟如此简单(一)使用 Tye 辅助开发 k8s 应用竟如此简单(二)续上篇,这篇我们来进一步探索 Tye 更多的使用方法。本篇我们来了解一下如何在 Tye 中如何对数据库进行链接。Newbe.Claptrap 是一个…

懒人模板网站网站商品展示设计

Domain Admin:一目了然,一键掌握,您的全方位图形化域名与SSL证书智能管家!- 精选真开源,释放新价值。 概览 Domain Admin是一个基于Python Vue3.js 技术栈实现的域名和SSL证书监测平台,旨在为用户打造一个…

程序员和网站建设企业搭建pc端网站

WPF列表性能提高技术 WPF数据绑定系统不仅需要绑定功能,还需要能够处理大量数据而不会降低显示速度和消耗大量内存,WPF提供了相关的控件以提高性能,所有继承自ItemsControl的控件都支持该技术。 虚拟化 UI虚拟化是列表仅仅为当前显示项创建…

如何在电商平台做好企业网站推广不用框架做网站

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元 1、用万用表电阻挡测量实验板(箱)上电位器(可调电阻)的参数范围。 0~1kΩ电阻: 1k*0%=0 1k*100%=1k 所以范围为0~1k 0~10kΩ电阻: 10k*0%=0 10k*…

校园网站制作如何做好一名销售

本文作者:孙雪丽文字编辑:周聪聪技术总编:张学人重大通知!!!2019年6月22日至24日在河南郑州举行Stata编程技术特别训练营,招生工作已经圆满结束。另外爬虫俱乐部将于2019年7月5日至7月8日在武汉…

陵水网站建设哪家专业十大免费ppt网站在线

Java线程池的类型和使用 引言 在并发编程中,线程池是一种非常重要的工具,它可以实现线程的复用,避免频繁地创建新线程,从而提高程序的性能和效率。Java的并发库提供了丰富的线程池功能,本文将介绍Java线程池的类型和…

南阳网站制作网站建设明细报价表

一、查看进程:ps 或 ps -a 二、命令后台运行: sudo ./runmyled.o& 命令后边跟个&, 返回进程id号 三、查看当前的进程: 四、删除进程:sudo kill id1 id2 id3

郑州网站及优化重庆软装设计公司官网

深入解析大语言模型显存占用:训练与推理 文章脉络 估算模型保存大小 估算模型在训练时占用显存的大小 全量参数训练 PEFT训练 估算模型在推理时占用显存的大小 总结 对于NLP领域的从业者和研究人员来说,有没有遇到过这样一个场景,你的…

淘宝上做的网站网站建设开发收费

文章目录一、软件介绍二、安装 Homebrew使用 Ruby 或者 Shell 脚本安装手动 clone 安装三、卸载 Homebrew四、Homebrew 安装目录五、安装包所在位置六、程序安装目录七、软件版本切换八、清除旧版本文件九、brew 命令汇总安装、升级和删除软件包查看和检验软件包参考示例服务相…

常州建站价格一个完整的网站制作流程

WebService 1. WebService基本认识 WebService最早是微软提出了一种以XML为载体网络信息传输的规范,现在几乎所有的语言与平台都支持,带有状态机制,不依赖于容器,可以发送一个xml作为其请求内容. WebService通常是基于http的远程方…