欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

踩坑日志1----从zuulFilter到Filter

程序员文章站 2023-12-28 12:00:34
...

踩坑缘起:

       项目里面一直在线程的上下文里面放着一些用户的信息,之前测试的时候直接放在了接口的最前面,这次有时间把中间的逻辑终于捋清楚了,涉及到了SpringCloud的zuul以及filter,把这中间用到的东西自己做了一下,发现是一步一坑,所以在此总结,避免以后入坑,同时如果对路过的各路豪杰有所帮助更好不过了。

第一坑之gateway和web依赖

       如果你的网关是用gateway来做的,你依赖里面又有了zuul,比如:

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>

     你会发现下面这个问题:

Description:

Parameter 0 of method modifyRequestBodyGatewayFilterFactory in org.springframework.cloud.gateway.config.GatewayAutoConfiguration required a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' that could not be found.


Action:

Consider defining a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' in your configuration.

 

      当时你肯定回去百度,会发现肯定是依赖的问题,大多数都是说有web依赖,这就很懵圈了,web依赖在哪里。

      后来通过查找发现spring-cloud-starter-netflix-zuul里面有web依赖


      所以只用zuul的依赖即可

第二坑之zuulFilter和Filter

      想做到的效果是写自己的filter继承zuulFilter实现把一些参数放到RequestContext里面,在Filter的HttpServletRequest里面再把参数取出来。

      一开始的时候是把zuulFilter和Filter写到了网关这个服务里面,最后发现根本从HttpServletRequest里面获取不到东西,最后找资料,一位仁兄有做提醒,方此出坑

      zuulFilter里面放的东西需要在其他服务里面定义Filter来处理请求

第三坑之Filter

      本想着八百公里的莫贺延碛就要过去了,结果又眼睁睁的调进一个坑里,为啥过滤器的代码不执行。

      经查资料发现@ServletComponentScan注解忘写了,这就写上呗,以为马上出坑。运行一看,What?

还是一样,又经过一番苦苦寻找,发现注解里面的basePackages忘记配置了。配置完成以后,运行代码,终于难产变顺产。

跳出了大坑,呼吸到了新鲜空气。

     

 

欢迎一起入坑,出坑。蹲坑也行

 

相关标签: 踩坑日记

上一篇:

下一篇: