1. 程式人生 > >三、Springboot學習2-過濾器實現-2018-11-13

三、Springboot學習2-過濾器實現-2018-11-13

1. 自定義filter,實現步驟:

    1. 實現Filter介面,實現filter方法

    2. 新增@Configuration註解,將自定義Filter加入過濾鏈

    程式碼如下:

@Configuration
public class WebConfiguration {

    private final static Log log = LogFactory.getLog(WebConfiguration.class);

    @Bean
    public RemoteIpFilter remoteIpFilter() {
        return new RemoteIpFilter();
    }

    @Bean
    public FilterRegistrationBean testFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new Myfilter());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("paramName","paramValue");
        registration.setName("MyFilter");
        registration.setOrder(1);
        return  registration;
    }

    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 {
            HttpServletRequest request = (HttpServletRequest)servletRequest;
            log.info("----WebConfiguration----doFilter----url: "+request.getRequestURI());
            filterChain.doFilter(servletRequest,servletResponse);
        }

        @Override
        public void destroy() {

        }
    }

}