springboot 有關攔截器遇到的問題


最近改造搜索服務,原來是用 ngx + lua 寫的,雖然性能很高,帶來的問題是可維護性不太方便,不是指lua語言方面,是因為團隊就2個開發人員,另外一個開發人員的擅長語言是Java,於是准備將搜索服務移植於Java語言,選型了現在當下的springboot,這樣就可以讓更多的人更維護這個服務。

我也是剛學springboot,以前也是自己玩過SSM框架,把遇到問題記錄下來:

在登錄攔截器中出現的問題

1、攔截器的排除路徑方法用了不生效

  

  excludePathPatterns攔截不到,login換成 * 也不行, 於是將攔截路徑的邏輯寫在 LoginInterceptor() 中,這樣就引發了第二個問題,因為 /search 是配置的項目路徑前綴,需要動態,放在第二個問題中解決

  

  通過路徑對比,如果是無需校驗的路徑直接房型

 

2、@Value注解獲取不到配置信息

   

 

  通過request方法能獲取到需要的信息

 

3、@Service注入的service使用時發現為null

  

  如果發現為null,直接根據request的上下文獲取

  

//解決service為null無法注入問題
        if (redisService == null) {
            BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
            redisService = (RedisService) factory.getBean("redisService");
        }

        String loginUserId = redisService.get(cacheKey);

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM