SpringMVC的filter怎么使用Autowired依賴注入bean

有的時候根據我們業務的需要,我們需要在web項目中定義一個自己的filter,并想在這個filter中使用@Autowired注入bean供我們使用。如果直接使用的話是不行的,需要我們在xml文件中進行配置。下面就根據我的一個項目寫一個示例:

步驟一、定義一個ClientSessionFilter,在這個Filter中注入我們想要的bean

public class ClientSessionFilter implements Filter {private static Logger log = Logger.getLogger(ClientSessionFilter.class);@Autowiredprivate RequestData requestData; //我們想要注入的bean@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {ObjectMapper mapper = new ObjectMapper();HttpServletRequest httpServletReq = (HttpServletRequest) request;String session = httpServletReq.getHeader("S");ClientSession cs;if(StringUtils.isNotBlank(session)) {try {cs = mapper.readValue(session, ClientSession.class);} catch (Exception e) {log.error("Session序列化錯誤" + e);throw new BusinessException(401, "Session序列化錯誤");}if(log.isDebugEnabled()) {log.debug(cs);}requestData.setClientSession(cs);}chain.doFilter(request, response);}@Overridepublic void destroy() {}
}

?

步驟二、在spring的配置文件application.xml中配置我們想要的bean和自定義的filter

<bean id="requestData" scope="request" class="cn.ucmed.common.cache.RequestData"><aop:scoped-proxy/> //這個標簽可以參考上一遍博客
</bean><bean id="clientSessionFilter" class="cn.ucmed.baseline.d2d.filter.ClientSessionFilter" />

步驟三、在web.xml中配置fileter

<filter><filter-name>filterProxy</filter-name><filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class><async-supported>true</async-supported><init-param><param-name>targetBeanName</param-name><param-value>clientSessionFilter</param-value></init-param><init-param><param-name>targetFilterLifecycle</param-name><param-value>true</param-value></init-param>
</filter>
<filter-mapping><filter-name>filterProxy</filter-name><url-pattern>/registeryuyue/*</url-pattern>
</filter-mapping>

轉載于:https://www.cnblogs.com/happyflyingpig/p/7998449.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252743.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252743.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252743.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RunDll32.exe 詳解及[Windows批處理]清除IE緩存

Rundll32命令詳解 文件作用&#xff1a;執行32位DLL文件中的內部函數 位置&#xff1a;X:&#xff08;當前系統分區)\windows\system32 命令語法&#xff1a; Rundll32.exe DLLname,Functionname [Arguments] 實例&#xff1a; RunDll32.exe InetCpl.cpl,ClearMyTracksByProces…

Linux 操作命令 more

Linux Shell 操作命令 目錄總覽&#xff08;點擊查看詳細信息&#xff09; 1、簡介 more 命令&#xff0c;功能類似 cat&#xff1b;cat 命令是將整個文件的內容從上到下顯示在屏幕上&#xff1b;more 命令會一頁一頁的顯示 2、主要功能 more 命令從前向后讀取文件&#xf…

外網訪問原理分析

本節我們會將上節創建的 ext_net 連接到 router&#xff0c;并驗證內外網的連通性。 更重要的&#xff0c;我們會分析隱藏在表象之下的原理。 將外網連接到 Neutron 的虛擬路由器&#xff0c;這樣 instance 才能訪問外網。 點擊菜單 Project -> Network -> Routers 進入 …

URAL1519 Formula 1 —— 插頭DP

題目鏈接&#xff1a;https://vjudge.net/problem/URAL-1519 1519. Formula 1 Time limit: 1.0 secondMemory limit: 64 MBBackground Regardless of the fact, that Vologda could not get rights to hold the Winter Olympic games of 20**, it is well-known, that the city…

電子透霧與光學透霧監控攝像機區別

當你在瘋狂購物時也目前已知的透霧算法大致可以分為兩大類&#xff1a;一種是非模型的圖像增強方法&#xff0c;通過增強圖像的對比度&#xff0c;滿足主觀視覺的要求來達到清晰化的目的&#xff1b;另一種是基于模型的圖像復原方法&#xff0c;它考查圖像退化的原因&#xff0…

sshfs的掛載與卸載

在CentOS中 sshfs的使用依賴EPEL(只安裝sshfs不會出錯&#xff0c;但是卻無法使用) 掛載 安裝EPEL rpm -i https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 如果這個鏈接失效&#xff0c;可訪問官網http://fedoraproject.org/wiki/EPEL 安裝sshfs…

2018年中國視頻監控行業發展空間巨大 AI技術賦能發展乃是未來必然趨勢

https://bg.qianzhan.com/report/detail/459/190131-c2610ca0.html2019-2024年中國視頻監控設備行業市場需求預測與投資戰略規劃分析報告2019-2024年中國安防行業市場前瞻與投資戰略規劃分析報告2019-2024年中國智能安防行業市場前瞻與投資戰略規劃分析報告2019-2024年中國智能…

FTP下載文件

今天公司有需求&#xff0c;需要從遠程FTP服務器上下載文件到本地代碼。然后看了一下&#xff0c;順便做個記錄 什么是FTP呢&#xff1f; 詳細百度百科 FTP 是File Transfer Protocol&#xff08;文件傳輸協議&#xff09;的英文簡稱&#xff0c;而中文簡稱為“文傳協議”。用…

tomcat啟動報錯The JRE could not be found.Edit the server and change the JRE location

解決&#xff1a; 在Windows->Preferences->Server->Runtime Environments 選擇Tomcat->Edit&#xff0c;在jre中選擇相應的jdk版本&#xff0c;完事。轉載于:https://www.cnblogs.com/Alwaysbecoding/p/10172752.html

tortoisegit推送ssh-key需要輸入用戶信息

修改了測試代碼&#xff0c;卻在提交代碼時候又跳出來請輸入用戶名和密碼, 后來發現&#xff0c;github push有兩種方式&#xff0c;ssh方式和https方式。而https方式是不同的&#xff0c;具體來說&#xff0c;就是url信息的不同&#xff0c;實際的驗證機制也是不同的。當建立了…

2018年中國視頻監控行業現狀及行業發展趨勢分析預測【圖】

一、中國視頻監控行業現狀 中國 2013-2018 年模擬標清視頻監控攝像機和模擬高清視頻監控攝像機的復合增長率分別為-15.2%、 29.6%。 模擬標清視頻監控攝像機需求量不斷下降&#xff0c; 預計 2018 年同比下降 13%&#xff0c; 將下降到 0.38 億臺。 模擬高清視頻監控攝像機需求…

周總結02

周一周二周三周四周五周六 所花時間 &#xff5b;包括上課&#xff5d; 16&#xff1a;50- 17&#xff1a;50 8&#xff1a;00-9&#xff1a;50 15&#xff1a;00-16&#xff1a;00 15&#xff1a;00- 16&#xff1a;30 0 10&#xff1a;10- 12&#xff1a;00 8&#xff…

C#中控制線程池的執行順序

在使用線程池時&#xff0c;當用線程池執行多個任務時&#xff0c;由于執行的任務時間過長&#xff0c;會導制兩個任務互相執行&#xff0c;如果兩個任務具有一定的操作順序&#xff0c;可能會導制不同的操作結果&#xff0c;這時&#xff0c;就要將線程池按順序操作。下面先給…

MySQL觸發器 trigger學習

觸發器&#xff1a;一類特殊的事物。可監視某種數據操作&#xff0c;并觸發相關操作&#xff08;insert/update/delete&#xff09;。表中的某些數據改變&#xff0c;希望同一時候能夠引起其他相關數據改變的需求。 作用&#xff1a;變化自己主動完畢某些語句查詢&#xff0c;加…

如何分析企業未來發展趨勢——以海康威視為例

財務分析主要基于歷史數據&#xff0c;但投資還需要看到企業未來的發展。 在前一篇的財務分析的文章中已經提到過&#xff1a;財務分析只是手段&#xff0c;最終還是要從中發現企業的競爭優勢以及行業的發展趨勢&#xff0c;并以此為基礎&#xff0c;分析企業未來的競爭優勢及…

java與C++的區別

java與C的區別 來源 https://www.cnblogs.com/Allen-rg/p/6692043.html “作為一名C程序員&#xff0c;我們早已掌握了面向對象程序設計的基本概念&#xff0c;而且Java的語法無疑是非常熟悉的。事實上&#xff0c;Java本來就是從C衍生出來的。”  然而&#xff0c;C和Java之…

js調試筆記

js調試方法很多&#xff0c;今天總結一下最實用的的斷點方法: debugger斷點 這個很常見&#xff0c;但許多人不知道其實可以添加條件判斷 if(something){debugger;} source斷點 這個最為常見&#xff0c;不做過多解釋&#xff0c;具體說一下幾個重要圖標: 恢復腳本執行至下一個…

JAVA Spring 事物 ( 已轉賬為例 ) 基于 AOP 注解

<一> 配置為文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:context"http://www.springf…

全球視頻監控設備市場規模分析

權威電子行業研究機構IHS Research發布《中國CCTV與視頻監控設備市場研究報告》顯示&#xff0c;2014年全球視頻監控設備市場143億美元&#xff0c;同比增長14.2%。歐洲、美洲、亞洲都增長低于預期;中國增長高于預期&#xff0c;市場總量達57.1億美元;美國市場雖然出貨量在增加…