网站首页 > 精选教程 正文
一,Feign
Feign是springcloud中远程调用的一种形式,其实底层也就是http的形式调用的,要想利用Feign写一个拦截器,可以做一些特殊的处理,比如可以想nginx一样,指定访问的路径服务的转发,也可以做一些请求头等一些处理
二,FeignInterceptor处理服务转发
FeignServiceUrlConfig
@Configuration
@RefreshScope
@ConfigurationProperties("feign.service")
public class FeignServiceUrlConfig {
/**
* key为服务名,value为接口对应的方法名+地址
*/
private Map<String, Map<String, String>> url;
public Map<String, Map<String, String>> getUrl() {
return url;
}
public void setUrl(Map<String, Map<String, String>> url) {
this.url = url;
}
}
FeignInterceptor
@Configuration
public class FeignInterceptor implements RequestInterceptor {
@Autowired
private FeignServiceUrlConfig feignServiceUrlConfig;
@Override
public void apply(RequestTemplate template) {
String methodName = template.methodMetadata().method().getName();
Target<?> target = template.feignTarget();
Map<String, Map<String, String>> urlMap = feignServiceUrlConfig.getUrl();
if (MapUtils.isNotEmpty(urlMap) && urlMap.containsKey(target.name()) && MapUtils.isNotEmpty(urlMap.get(target.name())) && urlMap.get(target.name()).containsKey(methodName)) {
template.target(urlMap.get(target.name()).get(methodName));
}
}
}
三,配置文件中配置
feign:
service:
url:
file-service: {"upload":"http://127.0.0.1:9204"}
猜你喜欢
- 2024-10-27 亿级并发流量控制策略!大话Redis哨兵模式下的系统限流实战
- 2024-10-27 Kubernetes系列(十三)阻止 ingress SQL 注入、 XSS 等攻击
- 2024-10-27 AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 2024-10-27 nginx 拦截非法字符,nginx禁止url访问特定字符,nginx过滤url
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)