微服务Feign本地契约测试--SpringCloudContract
一. 简述
在项目开发的时候,特别是使用 TDD
进行开发的项目,测试便是不可或缺的一个环节。然而我们的服务一般都需要配合其他服务接口来进行开发,那么测试的时候就需要开启所有服务来配合测试,机器配置跟不上,在构建的时候也会出现很多问题。 这时候就需要有一个东西来把调用第三方接口的事情给做了。最近看了Clossoverjie
的一篇文章 分享几个 SpringBoot 实用的小技巧,他很巧妙的利用 Spring
的容器把连接第三方接口的 bean
给替换掉。但我感觉始终还不是那么优雅(嗯,Spring
脑残粉,Spring
提供了就会用)。 现在 Spring-Cloud
提供了一个插件,Spring-Cloud-Contract
可以巧妙的对消费者项目进行打桩,让项目的测试调用访问的时候,可以模拟第三方业务,这也需要生产者提供一个 Contract
来使用。(当然,挺适合我这种一个人开发多个服务的开发者)
spring-boot 使用 jpa 进行数据库访问
因为已经编写了 web
项目,此项目直接在 web
项目上新增数据库访问。此处使用的访问 orm
层是 spring
官方提供的 spring-data-jpa
。 spring-data-jpa
是官方通过使用 java
规范中的 jpa
标准,使用 hibernate
框架作为 orm
层进行的数据库层面的请求访问。众所周知, hibernate
框架是针对数据库层面的面向对象框架,编写一次兼容所有数据库,不过前提是都使用他提供的 hql
或者接口进行编写。 spring
还对其新增了对领域驱动设计的友好支持。
一. 在项目中引入依赖
- 引入
spring-boot-starter-data-jpa
框架,便已经让项目支持了数据库连接 - 数据库驱动
- 如若需要测试环境,再引入内存数据库以及测试驱动
1 | <dependency> |
spring-boot 的 web 开发项目
spring-boot
的 web
开发项目
[toc]
一. 导入 spring-boot
父类依赖
通常来说,使用 官方脚手架 生成的 spring-boot
的父类依赖都是 spring
官方提供的 parent
然而,在实际生产中,这种方法,很少使用。我们更多的时候依赖自己项目中的父类进行生成。所以我们需要在自己的 pom.xml
中导入 spring
官方提供的 parent
即使现在 2.0.0
版本已经出来了,新增了 reactor
功能,但是如果不使用这套功能的话,我依然推荐 1.5.10.RELEASE
版。
1 | <dependencyManagement> |