欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在springboot中攔截器Filter中注入bean失敗問(wèn)題及解決

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

緣由

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

按正常的寫法如下:

@Autowired
private RedisUtil<Object, Object> redisUtil;

這是我的一個(gè)操作redis的工具類。

這樣自動(dòng)去注入當(dāng)使用的時(shí)候是未NULL,是注入不進(jìn)去了。

通俗的來(lái)講是因?yàn)閿r截器在spring掃描bean之前加載所以注入不進(jìn)去。

解決方法

可以通過(guò)已經(jīng)初始化之后applicationContext容器中去獲取需要的bean.

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

可以直接調(diào)用此方法得到想要的Bean

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

這樣就可以直接使用了。

注意*****

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

錯(cuò)誤示例

    SocketChannelInterceptor 這個(gè)對(duì)象是不會(huì)被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());
    }

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java HashMap底層實(shí)現(xiàn)原理

    Java HashMap底層實(shí)現(xiàn)原理

    HashMap在不同的JDK版本下的實(shí)現(xiàn)是不同的,在JDK1.7時(shí),HashMap 底層是通過(guò)數(shù)組+鏈表實(shí)現(xiàn)的;而在JDK1.8時(shí),HashMap底層是通過(guò)數(shù)組+鏈表或紅黑樹實(shí)現(xiàn)的,本詳細(xì)介紹了HashMap底層是如何實(shí)現(xiàn)的,需要的朋友可以參考下
    2023-05-05
  • Java 根據(jù)網(wǎng)絡(luò)URL獲取該網(wǎng)頁(yè)上面所有的img標(biāo)簽并下載圖片

    Java 根據(jù)網(wǎng)絡(luò)URL獲取該網(wǎng)頁(yè)上面所有的img標(biāo)簽并下載圖片

    這篇文章主要介紹了Java 根據(jù)網(wǎng)絡(luò)URL獲取該網(wǎng)頁(yè)上面所有的img標(biāo)簽并下載圖片,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • 詳解java中spring里的三大攔截器

    詳解java中spring里的三大攔截器

    在本篇文章里我們給大家詳細(xì)講述了java中spring里的三大攔截器相關(guān)知識(shí)點(diǎn)以及用法代碼,需要的朋友們學(xué)習(xí)下。
    2018-10-10
  • JAVA面向?qū)ο?封裝原理及實(shí)例解析

    JAVA面向?qū)ο?封裝原理及實(shí)例解析

    這篇文章主要介紹了JAVA面向?qū)ο?封裝原理及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Spring中的@ExceptionHandler異常攔截器

    Spring中的@ExceptionHandler異常攔截器

    這篇文章主要介紹了Spring中的@ExceptionHandler異常攔截器,Spring的@ExceptionHandler可以用來(lái)統(tǒng)一處理方法拋出的異常,給方法加上@ExceptionHandler注解,這個(gè)方法就會(huì)處理類中其他方法拋出的異常,需要的朋友可以參考下
    2024-01-01
  • 解決IDEA中快捷鍵Alt+Enter不能使用的問(wèn)題

    解決IDEA中快捷鍵Alt+Enter不能使用的問(wèn)題

    這篇文章主要介紹了解決IDEA中快捷鍵Alt+Enter不能使用的問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • SpringBoot+WebSocket+Netty實(shí)現(xiàn)消息推送的示例代碼

    SpringBoot+WebSocket+Netty實(shí)現(xiàn)消息推送的示例代碼

    這篇文章主要介紹了SpringBoot+WebSocket+Netty實(shí)現(xiàn)消息推送的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 使用IDEA啟動(dòng)項(xiàng)目遇見ClassNotFoundException的解決方案

    使用IDEA啟動(dòng)項(xiàng)目遇見ClassNotFoundException的解決方案

    這篇文章主要介紹了使用IDEA啟動(dòng)項(xiàng)目遇見ClassNotFoundException的正確解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot測(cè)試之@SpringBootTest與MockMvc的實(shí)戰(zhàn)應(yīng)用小結(jié)

    SpringBoot測(cè)試之@SpringBootTest與MockMvc的實(shí)戰(zhàn)應(yīng)用小結(jié)

    本文將深入探討SpringBoot測(cè)試中兩個(gè)核心工具:@SpringBootTest注解與MockMvc測(cè)試框架的實(shí)戰(zhàn)應(yīng)用,幫助開發(fā)者構(gòu)建更穩(wěn)健的測(cè)試體系,提高代碼質(zhì)量與可維護(hù)性,感興趣的朋友一起看看吧
    2025-03-03
  • java8新特性 stream流的方式遍歷集合和數(shù)組操作

    java8新特性 stream流的方式遍歷集合和數(shù)組操作

    這篇文章主要介紹了java8新特性 stream流的方式遍歷集合和數(shù)組操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08

最新評(píng)論