首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

弱网客户端福音:节省带宽利器【ETag】

2.REST和ETag 3.使用 curl来验证ETag功能 4.Spring对ETag支持 5.测试ETag 6.ETag其它用武之地 7....总结 1.概览 本文将重点介绍如何Spring添加ETag功能、如何使用 curl来验证添加了ETag功能REST API以及对这些REST API进行集成测试。...3.使用 curl来验证ETag功能 一个通过客户端和服务器通信来简单地测试ETag特性操作可以分解以下步骤: – 首先,客户端发起一个对REST API调用——响应包括了需要存储ETag头,以便进一步使用...因此,一个从ETag获益请求仍然会被作为一个标准请求处理,消耗正常消耗任何资源(数据库连接等),并且只有在将它响应返回给客户端之前,ETag支持才会启动。...如果需要一个实现了ETag功能RESTful服务以及配套集成测试,请查看GitHub项目——这是一个基于maven项目,因此应该很容易导入和运行。

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

Spring Boot应用测试——Mockito

这种测试不同于单元测试,需要为之初始化完整应用程序上下文、所有的spring bean都织入以及数据库需要有测试数据,一般来说这种测试称之为集成测试或者接口测试。...当在Jenkins或其他持续集成服务器上运行测试程序时,这种随机获取端口能力可以提供测试程序并行性。 了解完测试注解,再看看测试内部。...由于这是Spring Boot测试,因此我们可通过@Autowired注解织入任何由Spring管理对象,或者是通过@Value设置指定环境变量值。...在这个测试用例我们使用TestRestTemplate对象发起RESTful请求。 第三个测试用例展示了如何通过MockMvc对象实现跟第二个测试类似的功能。...分析:使用postman和httpie验证都没问题,说明是Mockmvc测试用例写得不对,应该主动设置客户端如何解析HTTP响应,用get.accept方法设置客户端可识别的内容类型,修改后测试用例如下

1.3K10

java单元集成测试使用Testcontainers

测试容器使以下类型测试更加容易: 数据访问层集成测试使用MySQL,PostgreSQL或Oracle数据库容器化实例测试数据访问层代码,但无需在开发人员计算机上进行复杂设置,并且测试将始终从已知数据库状态开始...也可以使用任何其他可以容器化数据库类型。 应用程序集成测试: 用于在具有相关性(例如数据库,消息队列或Web服务器)短期测试模式下运行应用程序。...spring.datasource.driver-class-name=org.testcontainers.jdbc.ContainerDatabaseDriver #将JDBC URL设置JDBC...; } } ---- 3.总结: Testcontainers轻松解决了集成测试测试代码与本地组件耦合,从而出现各种意外失败问题(比如本地数据库存在脏数据影响到了集成测试,多个集成测试同时运行时相互干扰导致测试结果意外失败...笔者之前专门集成测试准备了一套数据库,使数据和其他环境隔离掉,但还是会遇到多个集成测试一起跑相互干扰问题,Testcontainers轻松解决了笔者问题。

2.8K20

初试Spring Boot:构建第一个Web程序

Spring Boot运行Web应用,只需要执行main方法即可,那么如何测试这个Web程序?如何测试Spring Boot组件呢?这一节,将简单介绍Spring Boot单元测试。...在代码清单3-1配置了随机端口,如果想使用固定端口,则可以将webEnvironment配置WebEnvironment.DEFINED_PORT。...这一节,简单介绍了如何Spring Boot中进行单元测试,本节知识基本上能满足大部分需求,由于篇幅所限,在此不展开讨论。我们下面介绍如何使用Spring Boot来发布和调用REST服务。...Spring Cloud项目将Feign整合进来,让其作为REST客户端。这一节,我们来了解如何使用Feign框架调用REST服务。...除了这个简单Spring Boot程序外,还介绍了如何Spring Boot环境运行单元测试,包括对Web应用测试、对Spring组件模拟测试

1.3K20

实战|Service Mesh微服务架构实现服务间gRPC通信

具体如下: 1、构建Spring Boot基本工程(micro-pay/micro-pay-client) 使用Spring Boot框架构建基本Maven工程,为了工程代码复用,这里单独抽象一个...3、编写gRPC与Spring Boot框架集成配置代码 在Spring Cloud微服务中集成gRPC可以通过前面提到“grpc-client-spring-boot-starter”来实现,但目前还没有现成支持...到这里gRPC服务端工程代码就构建完成了,从整体上看就是Spring Boot+gRPC集成与整合,这其中没有引入Spring Boot定制gRPC集成SDK,目的在于避免其中所涉及客户端服务治理逻辑...为了让gRPC客户端配置与Spring Boot集成,这里也需要定义一个Spring Boot加载类,代码如下: @Component @Slf4j public class GrpcClientCommandLineRunner...,在容器编排资源和服务资源中分别定义了gRPC访问端口,通过这种设置,后续gRPC客户端通过Service资源访问服务时,就能够进行端口映射了!

1.6K30

Spring Boot使用Memcached缓存

Memcached基于内存key-value存储,用来存储小块任意数据,这些数据可以是数据库调用、API调用或者是页面渲染结果。...因为Spring Boot暂时还没有提供 Memcached相关支持包,因此需要我们通过集成第三方提供Memcached客户端来实现。...Spymemcached是官方推出一个Memcached  Java客户端使用NIO实现,异步、单线程,在性能上表现出色,广泛应用于Java + Memcached项目中。...实现案例 接下来,我们就用一个简单案例来说明在Spring Boot如何使用Memcached缓存技术。 首先,需要安装Memcached,教程很多,这里不再赘述。...4.调用memcache接口,测试缓存存取操作,查看控制台输出结果。

1.6K60

SpringCloud服务间通信方式

接下来在整个微服务架构,我们比较关心就是服务间服务改如何调用,有哪些调用方式?...1.2RestTemplate 服务调用 创建两个服务并注册到consul注册中心中 users 代表用户服务 端口 9999 products 代表商品服务 端口 9998 `注意:这里服务仅仅用来测试...通过Spring Cloud封装,可以让我们轻松地将面向服务REST模版请求自动转换成客户端负载均衡服务调用。...服务调用 # 1.项目中引入依赖 - 说明: 1.如果使用是eureka client 和 consul client,无须引入依赖,因为在eureka,consul默认集成了ribbon组件...client 进行客户端调用 - 使用loadBalanceClient 进行客户端调用 - 使用@loadBalanced 进行客户端调用 # 3.1 使用discovery Client

36420

【译】Spring 官方教程:使用 Restdocs 创建 API 文档

你将使用 Spring MockMVC 以及 JUnit 来进行 Web 层测试,然后你将使用相同测试,来使用 [Spring REST Docs] API 生成文档。...当使用 Spring 构建 apps 时候,几乎可以使用任何你喜欢构建工具, 但是此指南只介绍了如何使用 Gradle 和 Maven 来构建目标 app。...当使用Spring构建apps时候,几乎可以使用任何你喜欢构建工具, 但是此部分只介绍了如何使用 Maven 来构建目标app。...使用IDE构建 阅读如何将本指南直接导入到 Spring Tool Suite 。 阅读如何在 IntelliJ IDEA 中使用指南。...如果你应用不使用 Spring MVC, 也有 "restassured" 风格Rest Docs,适用于全栈集成测试 然后使用 @RunWith 和 @SpringBootTest 注解创建一个测试用例和一个空测试方法

5.2K70

重学springboot系列之集群多节点应用session共享,redis分布式锁

maven依赖 配置启用`Redis``httpSession` 配置redis链接信息(application.yml) 测试 一个项目多个端口启动 测试 Spring session推荐文章 介绍...) 也就是说我们可以使用redisson无缝、无损替换Spring Boot 2.x官方默认支持redis客户端letture。...但是需要说明是Redisson并不在Spring Boot官方默认支持redis客户端范围之内,所以redisson向Spring Boot 或者 Spring Data集成方案,都是由redisson...---- Spring Boot 集成Redisson 先从IDEA-maven管理Tab查看,要确保自己项目里面已经引入了下图所示spring-boot-starter-data-redis。...如何集成spring-boot-starter-data-redis 如上所示,我们使用spring data 2.2.4版本,所以artifactIdredisson-spring-data

1.3K30

Spring Boot整合Elasticsearch

无论您如何将数据导入Elasticsearch,都必须考虑另一个问题:数据结构。关系数据库数据可能分布在几个表之间。如果您想利用Elasticsearch,您应该将其存储单一类型。...在这种情况下,我们需要覆盖属性spring.elasticsearch.rest.uris-负责设置REST客户端使用地址: spring: elasticsearch: rest:...您可以将此方法与在RDBMS相关表组创建视图进行比较。在Spring Data Elasticsearch命名法,单个对象存储文档。因此,需要使用@Document注释对象。...它在测试类之前或每个依赖使用注释之前自动启动。公开端口号是自动生成,因此您需要将其设置spring.data.elasticsearch.cluster-nodes属性值。...Spring Data ElasticsearchTemplate对索引执行批量操作 使用ElasticHQ监控集群 使用TestcontainersElasticsearch构建自动集成测试 示例应用程序源代码通常在

2K30

javaweb-springcloud-1-75

Spring最擅长就是集成,把世界上最好框架拿过来,集成到自己项目中。...(服务治理,服务注册/发现) Zuul:网关组件,提供智能路由,访问过滤功能 Ribbon:客户端负载均衡服务调用组件(客户端负载) Feign:服务调用,给予Ribbon和Hystrix声明式服务调用组件...如何自动注册和发现 如何实现状态监管 如何实现动态路由 服务如何实现负载均衡 服务如何解决容灾问题 服务如何实现统一配置 以上问题,我们都将在SpringCloud得到答案。...不过Eureka已经帮我们集成了负载均衡组件:Ribbon,简单修改代码即可使用。 什么是Ribbon: 接下来,我们就来使用Ribbon实现负载均衡。...再跟下一次,发现获取是8081: 6.4.负载均衡策略 Ribbon默认负载均衡策略是简单轮询,我们可以测试一下: 编写测试类,在刚才源码我们看到拦截使用RibbonLoadBalanceClient

50610

springcloud实战:探索springcloud秘密

Spring Cloud 底层基于Spring Boot框架,它不重复“造轮子”,而是将一些第三方实现微服务应用模块集成。...Spring Cloud Security:Zuul代理负载平衡OAuth2REST客户端和身份验证中继提供支持。...指示该工程注册到哪个注册中心下, eureka固定值,8761注册中心端口。...,只有添加该依赖,我们才能将客户端注册到Eureka服务端; spring-boot-starter-web集成Spring MVC框架,在Eureka客户端必须添加该依赖,否则无法启动工程。...以上就是基于Spring Cloud架构创建最简单工程,通过这个工程,我们可以了解如何创建注册中心、如何客户端注册到注册中心,如何通过Gateway请求客户端定义接口。

39950

Spring Boot 2.X(六):Spring Boot 集成 Redis

Redis 与其他 key-value 缓存(如 Memcached )相比有以下三个特点: 1.Redis 支持数据持久化,它可以将内存数据保存在磁盘,重启时候可以再次加载进行使用。...在 springboot 1.5.x版本默认Redis客户端是 Jedis实现,springboot 2.x版本默认客户端是用 lettuce实现。...Jedis 在实现上是直连 redis server,多线程环境下非线程安全,除非使用连接池,每个 redis实例增加物理连接。...Lettuce 集成 Redis 服务 导入依赖 由于 Spring Boot 2.X 默认集成了 Lettuce ,所以无需导入。...总结 上面介绍了 Spring Boot 2.X 如何通过 Lettuce 和 Jedis 来集成 Redis 服务,按项目需求,我们也可以自定义操作类来实现数据操作。

2.1K41
领券