最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在springboot中攔截器Filter中注入bean失敗問題及解決

 更新時間:2024年05月17日 09:29:14   作者:解咚咚  
這篇文章主要介紹了在springboot中攔截器Filter中注入bean失敗問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

緣由

在做SSO項目時整合了shiro,在寫一個攔截器的時候(繼承AccessControlFilter)在這里需要注入一個Bean.

按正常的寫法如下:

@Autowired
private RedisUtil<Object, Object> redisUtil;

這是我的一個操作redis的工具類。

這樣自動去注入當使用的時候是未NULL,是注入不進去了。

通俗的來講是因為攔截器在spring掃描bean之前加載所以注入不進去。

解決方法

可以通過已經初始化之后applicationContext容器中去獲取需要的bean.

public <T> T getBean(Class<T> clazz,HttpServletRequest request){
        WebApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
        return applicationContext.getBean(clazz);
    }

可以直接調用此方法得到想要的Bean

RedisUtil<String,Object> redisUtil = getBean(RedisUtil.class, request);

這樣就可以直接使用了。

注意*****

如果有其他配置類中有new 一個對象出來,這個對象是不會被springboot管理的,不管你在其他地方用什么方法去交給spring管理創(chuàng)建對象,怎么都會注入為null,所以怎么注入都為null時注意檢查手動new的地方 !!!

錯誤示例

    SocketChannelInterceptor 這個對象是不會被spring管理的。
    @Override
    public void configureClientInboundChannel(ChannelRegistration registration) {
        registration.interceptors( new SocketChannelInterceptor());
    }

    @Override
    public void configureClientOutboundChannel(ChannelRegistration registration) {
        registration.interceptors( new SocketChannelInterceptor());
    }

正確示例

    @Bean
    public SocketChannelInterceptor getSocketChannelInterceptor(){
        return  new SocketChannelInterceptor();
    }


    @Override
    public void configureClientInboundChannel(ChannelRegistration registration) {
        registration.interceptors( getSocketChannelInterceptor());
    }

    @Override
    public void configureClientOutboundChannel(ChannelRegistration registration) {
        registration.interceptors( getSocketChannelInterceptor());
    }

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MyBatis Generator去掉生成的注解

    MyBatis Generator去掉生成的注解

    這篇文章主要介紹了MyBatis Generator去掉生成的注解的相關資料,非常不錯具有一定的參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • 開發(fā)者必讀:揭秘Python與Java的性能較量

    開發(fā)者必讀:揭秘Python與Java的性能較量

    本文將探討這兩種流行的編程語言之間的性能差異,無論你是剛剛入門編程還是已經有一定經驗,這個指南都將幫助你了解Python和Java在執(zhí)行速度、內存管理以及擴展性方面的不同,通過比較這兩種語言的特點和優(yōu)勢,你將能夠更好地選擇適合自己項目需求的編程語言,讓我們開始吧!
    2023-12-12
  • Java中final關鍵字和final的四種用法實例

    Java中final關鍵字和final的四種用法實例

    final關鍵字代表最終的、不可改變的,下面這篇文章主要給大家介紹了關于Java中final關鍵字和final的四種用法實例,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • springSecurity過濾web請求的項目實踐

    springSecurity過濾web請求的項目實踐

    SpringSecurity是一個功能強大的安全框架,提供了全面的 Web 安全功能,它的核心之一是過濾器鏈,用于攔截和處理 Web 請求,本文就來介紹SpringSecurity配置和使用過濾器來管理Web請求的安全性,感興趣的可以了解一下
    2025-09-09
  • hadoop?全面解讀自定義分區(qū)

    hadoop?全面解讀自定義分區(qū)

    Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎架構。用戶可以在不了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進行高速運算和存儲
    2022-02-02
  • 淺析如何使用xstream實現javaBean與xml互轉

    淺析如何使用xstream實現javaBean與xml互轉

    XStream 是一個用于將 Java 對象與 XML 之間進行轉換的庫,它非常簡單易用,下面將詳細介紹如何使用 XStream 實現 JavaBean 與 XML 之間的互轉,需要的可以了解下
    2025-05-05
  • bootstrap.yml如何讀取nacos配置中心的配置文件

    bootstrap.yml如何讀取nacos配置中心的配置文件

    這篇文章主要介紹了bootstrap.yml讀取nacos配置中心的配置文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • java對象類型轉換和多態(tài)性(實例講解)

    java對象類型轉換和多態(tài)性(實例講解)

    下面小編就為大家?guī)硪黄猨ava對象類型轉換和多態(tài)性(實例講解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java稀疏數組的應用實踐

    Java稀疏數組的應用實踐

    本文主要介紹了Java稀疏數組的應用實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Java實現求二叉樹的深度和寬度

    Java實現求二叉樹的深度和寬度

    這篇文章主要介紹了Java實現求二叉樹的深度和寬度,本文分別給出代碼實例,需要的朋友可以參考下
    2015-06-06

最新評論

邯郸县| 萨嘎县| 原平市| 阜宁县| 博乐市| 兖州市| 通化县| 自贡市| 灵台县| 扬中市| 成武县| 京山县| 犍为县| 香格里拉县| 阿克苏市| 平邑县| 安福县| 洪雅县| 罗江县| 浦北县| 恩平市| 诸城市| 郯城县| 桦甸市| 图木舒克市| 淮安市| 台湾省| 楚雄市| 肥城市| 镇沅| 汉阴县| 克拉玛依市| 通许县| 浮山县| 嘉义市| 东方市| 无为县| 达尔| 金门县| 景泰县| 洞口县|