再讲这个错误的时候小编给大家普及一下拦截器!

拦截器的好处:

  1. 权限控制:拦截器可以有效地进行权限验证,例如检查用户是否登录,以及用户是否有足够的权限进行某项操作。这有助于保护应用程序的安全性和数据的完整性。
  2. 日志记录:通过拦截器,可以方便地记录请求的处理过程、耗时等信息。这对于统计分析、故障排查等目的非常有用,有助于开发人员快速定位问题并进行修复。
  3. 数据预处理和后处理:在请求到达处理器之前,拦截器可以进行一些预处理工作,如数据解析、格式转换等。同时,处理器完成操作后,拦截器也可以进行后处理,如添加公共的响应信息、数据加工等。
  4. 灵活性:拦截器可以配置为拦截所有请求,或者通过指定路径模式来排除某些请求。这使得拦截器在应用中具有很高的灵活性,可以根据实际需求进行定制。
  5. 解耦:通过将一些通用逻辑(如权限验证、日志记录等)放在拦截器中处理,可以使控制器代码更加简洁和清晰,有助于实现代码的解耦和复用。

在我们写Spring Boot的项目的时候难免会用到 Spring Cloud Gateway与Spring MVC,Spring Cloud Gateway是基于WebFlux(响应式编程模型)构建的API网关,而Spring MVC则是基于Servlet API(同步阻塞模型)的传统Web框架。由于两者在底层实现上存在差异

正文开始

他们同时都用的时候之间会出现报错的这个情况报错如下:

提取出来的报错代码

Description:

Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway.

Action:

Please set spring.main.web-application-type=reactive or remove spring-boot-starter-web dependency.

说明在使用他们一起的时候出现了问题

那么小编也是琢磨和找了很久终于知道了这个的解决方案如下:

第1种方法是删除pom.xml里面的依赖

org.springframework.boot

spring-boot-starter-web

第2种是以加配置的方式

你的项目配置是 properties 里面加

# application.properties

spring.main.web-application-type=reactive

你的项目配置是 yaml 里面加

# application.yml

spring:

main:

web-application-type: reactive

请注意,将应用配置为响应式Web应用意味着你的整个应用将基于WebFlux进行构建,这意味着你可能需要重写或替换现有的基于Spring MVC的控制器和组件。

通常,如果你正在使用Spring Cloud Gateway,那么移除Spring MVC依赖是更直接和推荐的做法,因为Spring Cloud Gateway本身已经是一个完整的API网关解决方案,不需要与Spring MVC混合使用。

加完之后在运行一下就好了

小伙伴们学费了嘛,学费了的话请求三连哈哈哈!!!路途遥远我陪你啊!ovo

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐