javascript
SpringBoot拦截器不生效
?????? 今天新開了服務,需要用到攔截器,好久沒看spring的東西了,好多東西都忘了。。。這個項目框架是另一個同事搭建的,我需要創建一個攔擊器處理鑒權問題,但是不好使然后具體查了下原因。
在網上找了下,大致有這么幾種情況:
??? 缺少注解:@Component或者@Configuration注解
??? 啟動類沒有掃描到:@ComponentScan沒掃描到
??? 路徑配置錯了:addPathPatterns(“/**”);//?? /**代表所有目錄;/*代表當前目錄
然并軟,我沒有上面的問題。。。搞了好幾個小時跟著源碼發現另一個攔截器竟然起作用了!!!看了下另一個Config攔截器繼承了WebMvcConfigurationSupport
springboot只會生效一個配置類,于是我將兩個Config配置類合成一個,然后可以啦!
值得注意的是,我將WebConfig里的WebMvcConfigurationSupport改成WebMvcConfigurer或者WebMvcConfigurerAdapter也是不行的。
所以說,項目中不能有兩個以上的類繼承自這三個類。在重寫addInterceptors后注意你的代碼里面有沒有其他地方繼承或實現了WebMvcConfigurationSupport、WebMvcConfigurerAdapter、WebMvcConfigurer。
一定要統一,不能是有的類繼承這個,有的類繼承那個!!!
繼承WebMvcConfigurerAdapter或實現WebMvcConfigurer,功能差不多,可以在Application類中繼承或實現,也可以在其他的地方。重寫的方法都會執行。
繼承WebMvcConfigurationSupport,若多個類繼承該類,只會有一個類中的重寫的方法執行!!!
優先級:與Application平級>其他路徑下的類,優先級高的類執行后,其他類不會執行。注意,不能在Application類中繼承,即使繼承了,重寫的方法也不會生效。
總結
以上是生活随笔為你收集整理的SpringBoot拦截器不生效的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux常用端口查询命令及常见端口和端
- 下一篇: Java代码注释规约