springboot-filter整合

1 。編寫MyFilter類,實現Filter接口

package com.zhong.spring_demo.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * 攔截所有服務的請求信息,filter攔截器不能知道filter是哪個controller處理的請求,只能獲取請求中的信息
 */
@WebFilter(urlPatterns = { "/**" })
public class MyFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
            throws IOException, ServletException {
        // 通過filter
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {

    }

}

2.配置Filter

package com.zhong.spring_demo.config;

import java.util.List;

import com.zhong.spring_demo.filter.MyFilter;



import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 註冊外部的interceptor WebConfig
 */
@Configuration
public class WebConfig implements WebMvcConfigurer {


    /**
     * 註冊外部的filter,
     */
    @Bean
    public FilterRegistrationBean myFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new MyFilter());
        String[] urls = new String[] { "/**" };
        filterRegistrationBean.addUrlPatterns(urls);
        return filterRegistrationBean;
    }
    

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章