Feign 和 OpenFeign 都是用来进行服务间调用的客户端库,它们旨在简化HTTP API客户端的编写过程,使得编写对外部服务的接口就像调用本地方法一样简单。尽管它们有相似之处,但也存在一些关键差异:
-
归属和演进:
- Feign 最初是由 Netflix 开发的,作为其微服务架构的一部分,用于简化 REST 客户端的创建。
- OpenFeign 是 Spring Cloud 项目中的一个二级子项目,它是基于 Feign 进行了增强和定制,更紧密地与 Spring 生态系统集成。
-
Spring MVC 注解支持:
- Feign 本身并不直接支持 Spring MVC 的注解,如
@RequestMapping
、@GetMapping
、@PostMapping
等。 - OpenFeign 则支持这些 Spring MVC 注解,使得开发者能够利用熟悉的Spring注解风格来定义API接口,提高了代码的一致性和易读性。
- Feign 本身并不直接支持 Spring MVC 的注解,如
-
依赖和使用方式:
- Feign 的依赖通常指
spring-cloud-starter-feign
。 - OpenFeign 使用的依赖是
spring-cloud-starter-openfeign
。 - 在实际应用中,你可能直接使用
- Feign 的依赖通常指