SpringBoot中FilterRegistrationBean对象支持web的filter的排序

1.FilterRegistrationBean对象可以实现对web Filter的排序,使用setOrder(int i)方法,具体代码如下:

package com.dbzhang;
/**
 * @author zdb
 * @description @Configuration和@Bean注解配置使用,就相当于在配置文件中配置bean的注解式用法
 */
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.http.HttpServletRequest;
import org.apache.catalina.filters.RemoteIpFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class WebConfiguration {
	@Bean
	public RemoteIpFilter remoteIpFilter(){
		return new RemoteIpFilter();
	}
	/***
	 * 这个FilterRegistrationBean类可以使用setOrder()方法实现对filter的排序,然后在进行注册
	 * https://blog.csdn.net/doctor_who2004/article/details/56055505
	 */
	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;
	}
	/**
	 * 
	 * @author zdb
	 * @description 这个是用来实现Filter
	 *
	 */
	public class MyFilter implements Filter{

		@Override
		public void destroy() {
			
		}

		@Override
		public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
				throws IOException, ServletException {
			HttpServletRequest request = (HttpServletRequest)servletRequest;
			System.out.println("this is MyFilter,url:"+request.getRequestURI());
			filterChain.doFilter(servletRequest, servletResponse);
		}

		@Override
		public void init(FilterConfig arg0) throws ServletException {
			
		}
		
	}
}

参考技术文章:https://blog.csdn.net/doctor_who2004/article/details/56055505

猜你喜欢

转载自blog.csdn.net/zdb292034/article/details/82666757