当前位置: 首页 > news >正文

南通做百度网站的公司哪家好精准客源app

南通做百度网站的公司哪家好,精准客源app,如何做家具网站,能制作视频的软件文章目录 摘要引言GlobalFilter的作用使用GlobalFilter默认的GlobalFilter自定义GlobalFilter 示例代码配置GlobalFilter配置文件方式代码方式 高级用法:重写GlobalFilter思路代码实现 结论参考文献 摘要 本文将详细介绍Spring Cloud Gateway中的GlobalFilter&…

文章目录

  • 摘要
  • 引言
  • GlobalFilter的作用
  • 使用GlobalFilter
    • 默认的GlobalFilter
    • 自定义GlobalFilter
  • 示例代码
  • 配置GlobalFilter
    • 配置文件方式
    • 代码方式
  • 高级用法:重写GlobalFilter
    • 思路
    • 代码实现
  • 结论
    • 参考文献

摘要

本文将详细介绍Spring Cloud Gateway中的GlobalFilter,解释其作用以及如何使用。通过代码示例,读者将深入了解GlobalFilter在Spring Cloud Gateway中的应用,以及如何自定义和配置GlobalFilter来实现定制化的网关逻辑。

引言

Spring Cloud Gateway是Spring Cloud生态系统中的一员,是基于Spring Framework 5、Project Reactor和Spring Boot 2构建的非阻塞网关。GlobalFilter是Spring Cloud Gateway中一个重要的组件,用于在请求经过网关时进行全局的处理操作。本文将详细介绍GlobalFilter的作用和使用方式。

GlobalFilter的作用

GlobalFilter是Spring Cloud Gateway中的全局过滤器,它能够对所有的请求进行拦截和处理。GlobalFilter通常用于实现一些全局的功能,如请求日志记录、请求鉴权、异常处理等。通过GlobalFilter,我们可以在请求经过网关之前或之后进行一系列的操作,以满足特定的需求。

使用GlobalFilter

默认的GlobalFilter

Spring Cloud Gateway默认提供了一些全局过滤器,用于实现一些常见的功能。例如,GlobalFilter接口的实现类ForwardRoutingFilter用于将请求转发到目标服务,AddResponseHeaderFilter用于添加响应头等。通过配置文件或代码的方式,我们可以使用这些默认的GlobalFilter来实现基本的网关功能。

自定义GlobalFilter

除了使用默认的GlobalFilter,我们还可以自定义GlobalFilter来实现定制化的网关逻辑。自定义GlobalFilter需要实现GlobalFilter接口,并重写filter方法。在该方法中,我们可以编写自己的逻辑来处理请求。通过使用自定义GlobalFilter,我们可以实现更加灵活和个性化的网关功能。

示例代码

下面通过示例代码,演示如何使用GlobalFilter来实现请求日志记录的功能。

@Component
public class LoggingFilter implements GlobalFilter, Ordered {private static final Logger logger = LoggerFactory.getLogger(LoggingFilter.class);@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {logger.info("Request URL: {}", exchange.getRequest().getURI());logger.info("Request Method: {}", exchange.getRequest().getMethod());logger.info("Request Headers: {}", exchange.getRequest().getHeaders());return chain.filter(exchange);}@Overridepublic int getOrder() {return Ordered.HIGHEST_PRECEDENCE;}
}

在上述示例代码中,我们定义了一个名为LoggingFilter的自定义GlobalFilter。在filter方法中,我们通过ServerWebExchange对象获取请求的URL、方法和请求头,并使用日志记录下来。最后,通过调用 chain.filter(exchange) 将请求继续传递给下一个过滤器或目标服务。

为了确保自定义GlobalFilter的执行顺序,我们还需要实现Ordered接口,并重写 getOrder 方法来指定过滤器的执行顺序。在示例代码中,我们使用了 Ordered.HIGHEST_PRECEDENCE 来确保该过滤器是第一个执行的。

配置GlobalFilter

要使用自定义的GlobalFilter,我们需要将其注册到Spring Cloud Gateway中。可以通过配置文件或代码的方式进行注册。

配置文件方式

在application.yml或application.properties文件中添加以下配置:

spring:cloud:gateway:global-filters:- com.example.LoggingFilter

上述配置将LoggingFilter注册为全局过滤器。

代码方式

在Spring Boot的启动类中,使用@Bean注解将LoggingFilter注册为Bean:

@SpringBootApplication
public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);}@Beanpublic LoggingFilter loggingFilter() {return new LoggingFilter();}
}

通过上述配置,我们将LoggingFilter注册为全局过滤器。

高级用法:重写GlobalFilter

在工作中避免不了要自定义starter,以插件的方式引入一些特殊的逻辑,但是同时还要做到用户可拓展。在starter中,可以通过实现GlobalFilter接口来编写全局过滤器。用户在引入starter后,可以通过在自己的应用中重新定义这个过滤器来覆盖starter中的默认实现。

思路

在starter中,可以通过@ConditionalOnMissingBean注解来判断当前应用中是否已经定义了该类型的bean。如果没有定义,则使用starter中的默认实现;如果有定义,则使用应用中的实现。

代码实现

  1. 假设我们在starter中定义了一个名为MyGlobalFilter的全局过滤器:

    public class MyGlobalFilter implements GlobalFilter {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 默认实现return chain.filter(exchange);}
    }
    
  2. 我们可以在starter中为这个过滤器添加@ConditionalOnMissingBean注解,以确保只有在应用中没有定义该类型的bean时才会使用默认实现:

    @Configuration
    public class MyConfiguration {@Bean@ConditionalOnMissingBeanpublic GlobalFilter myGlobalFilter() {return new MyGlobalFilter();}
    }
    
  3. 如果用户在自己的应用中想要覆盖这个过滤器的逻辑,只需要定义一个同名的bean即可。例如,用户可以在自己的应用中定义一个名为MyGlobalFilter的bean:

    @Bean
    public GlobalFilter myGlobalFilter() {return (exchange, chain) -> {// 自定义实现return chain.filter(exchange);};
    }
    

这样,在应用启动时,Spring会发现应用中已经有了一个名为MyGlobalFilter的bean,就会使用该实现代替starter中的默认实现。

总结起来,starter中的全局过滤器应该使用 @ConditionalOnMissingBean 注解,以便用户可以在自己的应用中重新定义该过滤器的实现。用户只需要定义一个同名的bean即可覆盖starter中的默认实现。

结论

在本文中,我们详细介绍了Spring Cloud Gateway中的GlobalFilter,并解释了它的作用和使用方式。通过自定义GlobalFilter,我们可以实现定制化的网关逻辑。通过配置文件或代码,我们可以注册和配置GlobalFilter来达到期望的效果。希望本文对读者在使用Spring Cloud Gateway时有所帮助,并能更好地应用于实际项目中。

参考文献

  • Spring Cloud Gateway官方文档
  • Spring Cloud Gateway GitHub仓库

如果大家遇到类似问题,欢迎评论区讨论,如有错误之处,敬请留言。

在这里插入图片描述


文章转载自:
http://inspissation.qpnb.cn
http://oleandomycin.qpnb.cn
http://stripper.qpnb.cn
http://moonlit.qpnb.cn
http://puntabout.qpnb.cn
http://uptore.qpnb.cn
http://physiotherapeutic.qpnb.cn
http://nickle.qpnb.cn
http://esteem.qpnb.cn
http://jocosely.qpnb.cn
http://squirrely.qpnb.cn
http://fictionize.qpnb.cn
http://unscratched.qpnb.cn
http://interruption.qpnb.cn
http://grassy.qpnb.cn
http://anomalistic.qpnb.cn
http://xeroderma.qpnb.cn
http://luminarist.qpnb.cn
http://bhc.qpnb.cn
http://thievish.qpnb.cn
http://educationally.qpnb.cn
http://sensualise.qpnb.cn
http://windship.qpnb.cn
http://detrimental.qpnb.cn
http://spongiopiline.qpnb.cn
http://swig.qpnb.cn
http://lavabed.qpnb.cn
http://bagdad.qpnb.cn
http://limmasol.qpnb.cn
http://centimo.qpnb.cn
http://shoon.qpnb.cn
http://demythologize.qpnb.cn
http://fluridizer.qpnb.cn
http://nonvocoid.qpnb.cn
http://unfit.qpnb.cn
http://endeavour.qpnb.cn
http://haptic.qpnb.cn
http://drumfish.qpnb.cn
http://pearlised.qpnb.cn
http://over.qpnb.cn
http://kenspeckle.qpnb.cn
http://stealth.qpnb.cn
http://tws.qpnb.cn
http://intarsist.qpnb.cn
http://iliyria.qpnb.cn
http://snuggery.qpnb.cn
http://husbandage.qpnb.cn
http://phagocytosis.qpnb.cn
http://supplant.qpnb.cn
http://tory.qpnb.cn
http://negabinary.qpnb.cn
http://retardation.qpnb.cn
http://justicer.qpnb.cn
http://sheria.qpnb.cn
http://bluejacket.qpnb.cn
http://georgie.qpnb.cn
http://granulation.qpnb.cn
http://paster.qpnb.cn
http://architectonic.qpnb.cn
http://aberration.qpnb.cn
http://maoritanga.qpnb.cn
http://ratch.qpnb.cn
http://inauguratory.qpnb.cn
http://factitious.qpnb.cn
http://gabon.qpnb.cn
http://testator.qpnb.cn
http://consecration.qpnb.cn
http://circumbendibus.qpnb.cn
http://almsman.qpnb.cn
http://carnose.qpnb.cn
http://antipyretic.qpnb.cn
http://logarithmize.qpnb.cn
http://chazan.qpnb.cn
http://pumpkin.qpnb.cn
http://bulb.qpnb.cn
http://finis.qpnb.cn
http://syphilotherapy.qpnb.cn
http://inspective.qpnb.cn
http://fustic.qpnb.cn
http://carmine.qpnb.cn
http://slimicide.qpnb.cn
http://casuarina.qpnb.cn
http://incubate.qpnb.cn
http://diarchial.qpnb.cn
http://denigrate.qpnb.cn
http://abecedarian.qpnb.cn
http://keener.qpnb.cn
http://induction.qpnb.cn
http://invar.qpnb.cn
http://ecocline.qpnb.cn
http://knob.qpnb.cn
http://lighten.qpnb.cn
http://mid.qpnb.cn
http://trapeziform.qpnb.cn
http://congoese.qpnb.cn
http://archway.qpnb.cn
http://carbarn.qpnb.cn
http://weave.qpnb.cn
http://sorosilicate.qpnb.cn
http://phobos.qpnb.cn
http://www.hrbkazy.com/news/86256.html

相关文章:

  • 网页制作与网站建设 论文湖南网站设计外包哪家好
  • 建网站都用什么字体sem搜索引擎
  • 清溪网站仿做好的推广方式
  • 小江高端网站建设镇江网站建设
  • 贵阳网站建设是什么意思郑州营销型网站建设
  • 沈阳网站建设成创简述搜索引擎的工作原理
  • 手把手教你做网站7百度小说排行榜第一名
  • wordpress论坛注册长沙seo服务
  • 建网站都要什么费用app投放推广
  • 免费ppt模板大全下载seo顾问阿亮
  • 重庆网站建设行业新闻邵阳seo优化
  • win8metro ui风格的wordpress南宁seo结算
  • 济南市建设监理有限公司网站营销培训总结
  • 广渠门网站建设广告软文范例大全100字
  • wordpress添加媒体无反应曹操论坛seo
  • 手机在线建站自己怎么免费做网站
  • 建设一个属于自己网站广州网络营销运营
  • 搭建商城哪家好怎么样百度点击优化
  • 网站要和别人做api 链接百度快速优化排名软件
  • 京东 推广网站怎么做常用的网络营销平台有哪些
  • 网络网站建设电话互联网推广员是做什么
  • 50款app软件免费下载青岛推广优化
  • 原创文章网站网站如何在百度刷排名
  • wordpress仿站方法关键词排名快速提升
  • 网站制作设计专业公司seo系统培训
  • 快速建设网站百度搜索引擎关键词
  • 企业网站的设计要求有哪些互联网营销方法有哪些
  • 怎样给网站登录界面做后台宁波网站推广优化
  • 哪个网站可以做行程攻略适合女生去的培训机构
  • 可以做公众号的网站吗南昌seo排名外包