一次Feign使用的案例
项目名称
projectName
Maven架构
l ProjectName-项目名称,项目父工程
- projectName-api-提供给外部组件使用的接口
- common-一些基本共用的类、枚举常量等
- modules-项目主体模块
n projectName-business-业务基础服务(对应数据库实体类、持久层等)
n projectName-provider-业务上层的服务(接收参数、控制层、VO等)
n projectName-reference-项目内使用的外部组件的接口
- start-项目启动类,以及配置等
- tool-工具
- view-web视图层
projectName-api
定义提供给外部的接口:xxxApi
基本的内容为:
@Api(tags = {"xxxx接口api"})
@Path("/pathX")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@ApiImplicitParams({@ApiImplicitParam(
name = "Token",
value = "接口",
dataType = "string",
defaultValue = "11",
paramType = "header"
)})
public interface XxxDataApi {
/**
* xxxx
* @return
*/
@POST
@Path("/pathY")
@ApiOperation(value = "xx接口", notes = "xx接口", tags = {"xx接口api"})
@TokenIgnore
XxxResponseApiDTO xxxData(ParamXxxDto paramXxxDto);
}
projectName-provider
实现projectName-api提供给外部使用的接口
使用内部的service等实现基本的业务逻辑,即书写实现业务的代码
projectNama-reference
在另一个A项目组件需要使用上面定义的外部接口时,A项目组件在projectName-reference下定义一个接口XxxDataApiClient
基本内容如下:
@FeignClient(value = "组件服务名称", path = "组件服务路径")
public interface XxxDataApiClient extends XxxDataApi {}
这样就可以直接在A项目中使用该接口,使用XxxDataApi内部的方法。
一次Feign使用的案例的更多相关文章
- springcloud(九):熔断器Hystrix和Feign的应用案例
因为 feign 中已经支持了 Hystrix ,所以在 Feign 中使用 Hystrix 时,不需要导包,也不需要在入口类上面增加额外的注解: Feign 虽然支持了 Hystrix ,但是默认 ...
- spring boot 2.0.3+spring cloud (Finchley)3、声明式调用Feign
Feign受Retrofix.JAXRS-2.0和WebSocket影响,采用了声明式API接口的风格,将Java Http客户端绑定到他的内部.Feign的首要目标是将Java Http客户端调用过 ...
- Feign 系列(01)最简使用姿态
目录 Feign 系列(01)最简使用姿态 1. 引入 maven 依赖 2. 基本用法 3. Feign 声明式注解 Feign 系列(01)最简使用姿态 Spring Cloud 系列目录(htt ...
- springcloud高级
第一章 负载均衡 Ribbon (Spring Cloud 高级) 一. Ribbon 在微服务中的作用 1 什么是 Ribbon 1.Ribbon 是一个基于 Http 和 TCP ...
- springcloud(九):熔断器Hystrix和Feign的全套应用案例(二)
一.. 创建Eureka-Server 服务中心项目 1. 创建Eureka-Server 服务中心项目架构如下 2. pom.xml <dependencies> <depende ...
- springcloud(十六)、feign+hystrix+ribbon+zuul应用案例
在 基于 " sringcloud(十四).ribbon负载均衡策略应用案例 "所有工程的基础上,进行如下操作进行网关设置 1.创建eureka-client-consumer-z ...
- Spring Cloud微服务系列文,服务调用框架Feign
之前博文的案例中,我们是通过RestTemplate来调用服务,而Feign框架则在此基础上做了一层封装,比如,可以通过注解等方式来绑定参数,或者以声明的方式来指定请求返回类型是JSON. 这种 ...
- Spring Cloud微服务笔记(五)Feign
Feign 一.Feign概述 Feign是一个声明式的Web Service客户端.在Spring Cloud 中使用Feign,可以做到 使用HTTP请求访问远程服务,就像调用本地方法一样,同时它 ...
- spring cloud 微服务调用--ribbon和feign调用
这里介绍ribbon和feign调用两种通信服务调用方式,同时介绍如何引入第三方服务调用.案例包括了ribbon负载均衡和hystrix熔断--服务降级的处理,以及feign声明式服务调用.例子包括s ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十九):服务消费(Ribbon、Feign)
技术背景 上一篇教程中,我们利用Consul注册中心,实现了服务的注册和发现功能,这一篇我们来聊聊服务的调用.单体应用中,代码可以直接依赖,在代码中直接调用即可,但在微服务架构是分布式架构,服务都运行 ...
随机推荐
- 为动态二级域名申请https的免费证书.
前面已经讲过将nginx部署,并注册了免费的二级域名.但将网址发给儿子,儿子说微信已经不能打开http的网址了,所以一想还是研究一下https的证书申请. 网上有很多讲通过,acme的脚本来自动化申请 ...
- react+antd 开发一个可动态增减的复合组件
需求如图: 与后端协商好的表单数据为: 组件代码: /* 阶梯分成组件 */ import React, { useState, useEffect } from 'react'; import { ...
- 4、Redis底层原理(持久化+分布式锁)
Redis底层原理 持久化 Redis虽然是个内存数据库,但是Redis支持RDB和AOF两种持久化机制,将数据写往磁盘,可以有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即 ...
- Java中double保留2位小数(精度丢失)的两种方式
Java中double保留2位小数(精度丢失)的两种方式 在我们日常开发中,使用double数据类型进行计算,偶尔会出现精度丢失的情况,例如实际结果是0.75,就可能出现0.7500000000000 ...
- .net core 接收并存储客户端上传的文件
1 文件是上传到Host,非上传到阿里云OSS 2 在Program.cs或StartUp中使用静态文件的中间件 public void Configure(IApplicationBuilder a ...
- Layui分页与springboots
service.java public List<Menu> listAllMenuPage(PageData pd) throws Exception{ List<Menu> ...
- 5-3 掌握 egg.js + 云 mongodb
1 egg.js 1.1 初始化 初始化和项目启动方法 # 初始化 $ mkdir egg-example && cd egg-example $ npm init egg --typ ...
- k8s集群查看node和pod的实时资源使用情况
一.部署步骤 1.准备metrics-server官方yaml文件 2.部署metrics-server 3.查看资源使用情况 二.准备metrics-server官方yaml文件 [root@loc ...
- Docker In Action 学习笔记 根据第二版有所更新
第一章 最简单的 hello_world/Dockerfile FROM busybox:latest CMD ["echo", "hello world"] ...
- 批量cp时中断,原来是被cp的alias干扰了
背景 批量复制一批数据的质控结果的时候,由于表格中出现一个重复项,导致卡在是否覆盖的提示这里 结果该重复项之后的样本都没有复制成功,差点就漏掉一部分样本啊-- cat ../sampleList|wh ...