服务消费者(Feign-下)
上一篇文章中已经讲述 Feign的基本用法,本章主要概述
FeignClient
GET/POST/PUT/DELETE restful写法以及 Feign 拦截器,与配置优化方案,关闭HttpClient开启OKHTTP…
- 准备工作
1.启动Consul,所有文章都将以Consul作为服务注册中心
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。2.创建 battcn-feign-hello,battcn-feign-hi(本文代码基于上篇改造)
3.服务(Hi)-> FeignClient -> 服务(Hello),通过实现 RequestInterceptor 传递 header 信息
- battcn-feign-hello
- pom.xml
1 |
<dependencies> |
- BattcnFeignHelloApplication.java
1 |
@SpringBootApplication |
- Student.java
1 |
public class Student { |
- HelloController.java
1 |
@RestController |
- bootstrap.yml
1 |
server: |
- 测试
访问:http://localhost:8765/hello?name=Levin
显示:{"id":1,"name":"挽歌-GET","email":"1837307557@qq.com"}
代表我们服务启动成功
- battcn-feign-hi
- pom.xml
1 |
<dependencies> |
- BattcnFeignHiApplication.java
1 |
@EnableDiscoveryClient |
- HiController.java
1 |
@RestController |
- MyFeignInterceptor.java
1 |
/** |
- HelloClient.java
1 |
package com.battcn.client; |
- bootstrap.yml
1 |
server: |
- 测试
访问:http://localhost:8766/swagger-ui.html
使用Swagger做测试
此处只演示GET,PUT,DELETE,POST 示例代码都包括,自行测试即可
日志:
1 |
2017-07-29 18:21:26.854 INFO 12620 --- [nio-8765-exec-2] com.battcn.controller.HelloController : [查询参数] - [Levin] |
如果未实现 RequestInterceptor 那么 LOGGER.info("[Auth] - [{}]",request.getHeader("Auth"));
就无法获取到 request 中的信息
- 流程图
画图工具:https://www.processon.com/

更多精彩