【spring boot】FilterRegistrationBean介紹


前言

      以往的javaee配置過濾器是在web.xml中配置的,如下代碼

   

<filter>
     <filter-name>TestFilter</filter-name>
        <filter-class>com.cppba.filter.TestFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>TestFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <init-param>
       <param-name>paramName</param-name>
       <param-value>paramValue</param-value>
    </init-param>
</filter-mapping>

     而spring boot 是沒有這個配置的,怎么辦?

解決辦法

    定義一個自定義的過濾器,類似原來的模式

   

package com.cppba.filter;

import javax.servlet.*;
import java.io.IOException;

public class TestFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
            throws IOException, ServletException {
        System.out.println("TestFilter");
    }

    @Override
    public void destroy() {

    }
}

 

    主程序啟動文件,增加

@Bean
    public FilterRegistrationBean testFilterRegistration() {

        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new TestFilter());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("paramName", "paramValue");
        registration.setName("testFilter");
        registration.setOrder(1);
        return registration;
    }

 

總結:

   

Spring Boot針對Servlet、Filter等,有幾種注冊方法
  1. 使用@WebFilter@WebServlet@WebListener注解來標識類
  2. 使用FilterRegistrationBeanServletRegistrationBean來對FilterServlet進行自定義注冊
  3. 使用@Bean來自動添加,添加后默認的過濾路徑為 /*


免責聲明!

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



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