spring cloud zuul修改请求url的方法

 更新时间:2017年09月11日 14:59:19   作者:xixicat  
这篇文章主要给大家介绍了关于spring cloud zuul修改请求url的方法,文中通过示例代码介绍的非常详细,对大家学习或者使用spring cloud具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

前言

在日常开发中,除了修改请求参数、设置响应header,响应body外,还有一种需求就是url重新,或者是修改url,这里简述一下怎么在zuul修改url。话不多说了,来一起看看详细的介绍吧。

转发配置

demo:
 ribbon:
 NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
 listOfServers: 192.168.99.100,192.168.99.101
zuul:
 routes:
 demo:
  path: /demo/**
  stripPrefix: true
  serviceId: demo

filter配置

@Component
public class UrlPathFilter extends ZuulFilter{

 @Override
 public String filterType() {
  return FilterConstants.PRE_TYPE;
 }

 @Override
 public int filterOrder() {
  return FilterConstants.PRE_DECORATION_FILTER_ORDER + 1;
 }

 @Override
 public boolean shouldFilter() {
  final String serviceId = (String) RequestContext.getCurrentContext().get("proxy");
  return "demo".equals(serviceId);
 }

 @Override
 public Object run() {
  RequestContext context = RequestContext.getCurrentContext();
  Object originalRequestPath = context.get(FilterConstants.REQUEST_URI_KEY);
  //http://localhost:10000/demo/list/data
  //-->/api/prefix/list/data
  String modifiedRequestPath = "/api/prefix" + originalRequestPath;
  context.put(FilterConstants.REQUEST_URI_KEY, modifiedRequestPath);
  return null;
 }
}

这样就大功告成了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

doc

PreDecorationFilter

Dynamically re-route all Zuul proxied requests to single URL

相关文章

  • Java单元测试工具之JUnit的使用

    Java单元测试工具之JUnit的使用

    本篇文章主要详细介绍单元测试工具JUnit的使用,文章中有详细的代码实例,有一定的参考价值,需要的朋友可以参考阅读
    2023-04-04
  • SpringBoot详细讲解如何创建及刷新Spring容器bean

    SpringBoot详细讲解如何创建及刷新Spring容器bean

    前面看spring源码时可以发现refresh()方法十分重要。在这个方法中会加载beanDefinition,同时创建bean对象。那么在springboot中有没有使用这个refresh()方法呢
    2022-06-06
  • 在eclipse中中文汉字乱码的解决方案

    在eclipse中中文汉字乱码的解决方案

    在本篇文章里小编给大家分享的是关于在eclipse中中文汉字乱码的解决方案,有需要的朋友们可以学习下。
    2019-12-12
  • Spring中的set注入方法

    Spring中的set注入方法

    这篇文章主要介绍了Spring中的set注入方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Mybatis-plus数据权限DataPermissionInterceptor实现

    Mybatis-plus数据权限DataPermissionInterceptor实现

    本文主要介绍了Mybatis-plus数据权限DataPermissionInterceptor实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 使用java代码获取新浪微博应用的access token代码实例

    使用java代码获取新浪微博应用的access token代码实例

    这篇文章主要介绍了使用java代码获取新浪微博应用的access token实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Java 通过 二三法 巧解前端数据显示

    Java 通过 二三法 巧解前端数据显示

    实践来源于理论,做开发前肯定要先了解相关的规则和原理,看到标题或许你会好奇什么是二三法。本篇文章带你深入了解,需要的朋友可以参考下
    2021-10-10
  • Spring中@Conditional注解的用法

    Spring中@Conditional注解的用法

    这篇文章主要介绍了Spring中@Conditional注解的用法,@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean,需要的朋友可以参考下
    2024-01-01
  • 使用RestTemplate 调用远程接口上传文件方式

    使用RestTemplate 调用远程接口上传文件方式

    这篇文章主要介绍了使用RestTemplate 调用远程接口上传文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 基于jenkins发布编译后的class文件

    基于jenkins发布编译后的class文件

    这篇文章主要介绍了基于jenkins发布编译后的class文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07

最新评论