feignclient使用规范


为解决feign服务端修改了接口,调用方没相对于修改导致功能异常问题以及解决feign客户端、DTO、VO每个调用方都写一遍的问题,现对feign客户端的编写重新定义规范,之前由各个服务自行编写client,现调整为服务端提供client,各个服务直接引入相对应的jar包即可,提供的client提供相对应的服务接口、VO、DTO。

开发步骤

  1. 新建服务项目(xxx-service)

详情请看 项目结构 新建相对应的服务项目

  1. 新建服务项目对应的feign客户端项目(xxx-service-client)

建议feign 包下面的路径跟服务项目的controller 的项目目录保持一致

客户端项目目录如下

java
   └── cn
        └── com
            └── tcc
                └── ofa
                    └── admin(模块名)
                        ├── config (java配置类)
                        ├── model
                        │   ├── dto(Data Transfer Object,数据传输对象)
                        │   └── vo(View Object,显示层对象)
                        ├── feign(feign client 接口)
                        |   └── fallback(feign fallback实现类)
                        └── utils(工具类)
  1. 其他项目引入feign 客户端jar 包

服务端引入client 为了统一使用dto、vo

        <dependency>
            <groupId>com.tcsoft</groupId>
            <artifactId>xxx-service-client</artifactId>
            <version>xxxx</version>
        </dependency>

调用方引入client

        <dependency>
            <groupId>com.tcsoft</groupId>
            <artifactId>xxx-service-client</artifactId>
            <version>xxxx</version>
        </dependency>
  1. 使用
    调用方的service层 方法引入,方法直接调用

样例代码

项目结构图

项目结构图

服务端引入

服务端引入

调用方引入

调用方引入

编写feign客户端代码

feign客户端代码

调用方代码直接调用接口

feign客户端代码