Spring FilterRegistrationBean Boot's - support the use of web Filter sort of (turn)

Spring Boot of FilterRegistrationBean - support web Filter ordered using
Spring provides FilterRegistrationBean class, which provides setOrder method, you can set the sort values for the filter,
so that spring after sorting order registered before the registration web filter.

  Write an ordinary filter:

package com.sdcuike.practice.web2;
 
import java.io.IOException;
 
import javax.annotation.Resource;
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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import com.sdcuike.practice.config.CommonConfig;
 
public class FilterDemo3 implements Filter {
    private final Logger log = LoggerFactory.getLogger(getClass());
 
    @Resource
    private CommonConfig commonConfig;
 
    @Override
    public void destroy() {
        log.info("" + getClass() + " destroy");
 
    }
 
    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
        log.info("" + getClass() + " doFilter " + commonConfig);
        arg2.doFilter(arg0, arg1);
 
    }
 
    @Override
    public void init(FilterConfig arg0) throws ServletException {
        log.info("" + getClass() + " init");
 
    }
 
}

Configuration is as follows:

package com.sdcuike.practice.web2;
 
import javax.servlet.Filter;
 
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
import com.sdcuike.spring.extend.web.MvcConfigurerAdapter;
 
/**
 * Web component configuration
 * 
 * @author sdcuike
 *         <p>
 *         Created on 2017-02-10
 *         <p>
 * Custom injection, and supports dependency injection, assembly sequencing
 */
@Configuration
public class WebComponent2Config   {
 
    @Bean
    public FilterRegistrationBean filterDemo3Registration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter (filterDemo3 ());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("paramName", "paramValue");
        registration.setName("filterDemo3");
        registration.setOrder(6);
        return registration;
    }
 
    @Bean
    public FilterRegistrationBean filterDemo4Registration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(filterDemo4());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("paramName", "paramValue");
        registration.setName("filterDemo4");
        registration.setOrder(7);
        return registration;
    }
 
    @Bean
    public Filter filterDemo3() {
        return new FilterDemo3();
    }
 
    @Bean
    public Filter filterDemo4() {
        return new FilterDemo4();
    }
 
}
In this way, we can sort of filter, self-testing, source code:


----------------
Disclaimer: This article is CSDN blogger "A_Beaver 'original article, follow the CC 4.0 BY-SA copyright agreement, reproduced, please attach the original source link and this statement. .
Original link: https: //blog.csdn.net/doctor_who2004/article/details/56055505

Guess you like

Origin www.cnblogs.com/muxi0407/p/11984085.html