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

在Filter中不能注入bean的問題及解決

 更新時(shí)間:2021年11月15日 14:58:05   作者:hehuijava  
這篇文章主要介紹了在Filter中不能注入bean的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Filter中不能注入bean的問題

WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
ApiController apiController = (ApiController) webApplicationContext.getBean("apiController");

Filter中注入bean 無效為null

問題原因

Web應(yīng)用的啟動(dòng)順序是:

Lisenter->Fliter->Servlet, 應(yīng)用程序上下文, 初始化 Fliter的時(shí)候,還沒有初始化Servlert,所有沒有進(jìn)入DispacterServlet的初始化,故在Fliter中使用注解注入bean為空;

解決辦法

添加初始化bean配置,手動(dòng)創(chuàng)建對象new

代碼如下:

package com.test.config; 
import com.alibaba.druid.support.http.StatViewServlet;
import com.test.service.RequestFilter;
import javax.servlet.Filter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.DelegatingFilterProxy;
 
/**
 * @author lucasliang
 * @date 08/11/2018 5:56 afternoon filter load before dispathServlet ,so load RequestFilter as a
 * bean,new a RequestFilter
 */
@Configuration
public class FilterConfig {
 
  /*
    *@param: []
    *@return javax.servlet.Filter
    *@author lucasliang
    *@date 20/12/2018
    *@Description filter
   */
  @Bean
  public Filter uploadFilter() {
    return new RequestFilter();
  } 
 
  /*
    *@param: []
    *@return org.springframework.boot.web.servlet.FilterRegistrationBean
    *@author lucasliang
    *@date 20/12/2018
    *@Description filter
   */
  @Bean
  @SuppressWarnings("unchecked")
  public FilterRegistrationBean testFilterRegistration() {
    FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setFilter(new DelegatingFilterProxy("uploadFilter"));
    registration.addUrlPatterns("/*");
    registration.addInitParameter("paramName", "paramValue");
    registration.setName("testFilter");
    registration.setOrder(1);
    registration.setEnabled(false);
    return registration;
  } 
}

其中RequestFilter是手動(dòng)創(chuàng)建的bean,實(shí)現(xiàn)了Filter接口

package com.test.service; 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig; 
 
public class RequestFilter implements Filter { 
  private Logger logger = LoggerFactory.getLogger(Filter.class);  
  @Value(value = "${encodeRules}")
  private String encodeRules;  
}

此時(shí),在RequestFilter中使用@Value注解,就可以取到值了,注入bean也相同,會(huì)取到對應(yīng)的bean。

至此問題解決!

總結(jié):不管做什么事,首先要搞清楚他的原理,要不,解決了問題下次遇到了還是不會(huì)!

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

  • 如何使用BufferedReader循環(huán)讀文件

    如何使用BufferedReader循環(huán)讀文件

    這篇文章主要介紹了如何使用BufferedReader循環(huán)讀文件的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 關(guān)于Java中的dozer對象轉(zhuǎn)換問題

    關(guān)于Java中的dozer對象轉(zhuǎn)換問題

    Dozer是Java?Bean到Java?Bean映射器,它以遞歸方式將數(shù)據(jù)從一個(gè)對象復(fù)制到另一個(gè)對象,這篇文章主要介紹了Java中的dozer對象轉(zhuǎn)換的操作方法,需要的朋友可以參考下
    2022-08-08
  • 如何用java實(shí)現(xiàn)分頁查詢

    如何用java實(shí)現(xiàn)分頁查詢

    這篇文章主要介紹了如何用java實(shí)現(xiàn)分頁查詢,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • java如何獲取map中value的最大值

    java如何獲取map中value的最大值

    這篇文章主要介紹了java如何獲取map中value的最大值問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 詳解Java反射創(chuàng)建對象

    詳解Java反射創(chuàng)建對象

    今天帶大家學(xué)習(xí)Java的基礎(chǔ)知識(shí),文中對Java反射創(chuàng)建對象作了非常詳細(xì)的介紹及代碼示例,對正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • mybatis批量插入返回主鍵失敗的坑及解決

    mybatis批量插入返回主鍵失敗的坑及解決

    這篇文章主要介紹了mybatis批量插入返回主鍵失敗的坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 在Java中判斷兩個(gè)Long對象是否相等

    在Java中判斷兩個(gè)Long對象是否相等

    這篇文章主要介紹了在Java中判斷兩個(gè)Long對象是否相等的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java利用DOM解析XML的學(xué)習(xí)指南

    Java利用DOM解析XML的學(xué)習(xí)指南

    在Java中使用DOM解析XML文件是一個(gè)常見的操作,它允許你以編程方式讀取、修改和保存XML文檔的結(jié)構(gòu)和內(nèi)容,本文為大家介紹了具體的實(shí)現(xiàn)步驟,有需要的小伙伴可以參考下
    2025-04-04
  • Java實(shí)現(xiàn)截取視頻第一幀的示例詳解

    Java實(shí)現(xiàn)截取視頻第一幀的示例詳解

    在實(shí)際項(xiàng)目中,會(huì)遇到上傳視頻后,需要截取視頻的首幀或指定幀為圖片,作為展示使用的需求,下面小編就來為大家介紹一下如何使用Java實(shí)現(xiàn)截取視頻第一幀吧
    2025-03-03
  • 最新評論

    卫辉市| 鄯善县| 东兰县| 武功县| 台中市| 仲巴县| 左云县| 杭州市| 阜阳市| 资溪县| 进贤县| 平果县| 疏附县| 府谷县| 景德镇市| 天全县| 长子县| 五寨县| 鸡东县| 龙川县| 汨罗市| 溆浦县| 陈巴尔虎旗| 乐平市| 合山市| 密山市| 长武县| 黎川县| 日喀则市| 林周县| 承德市| 旬阳县| 吕梁市| 富宁县| 永靖县| 兴山县| 台东县| 拜泉县| 谢通门县| 广汉市| 习水县|