一、定义2个Filter
package com.example.config;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class TestFilter1 implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)req;
System.out.println("[TestFilter1]request url is :"+request.getRequestURI());
filterChain.doFilter(req,resp);
}
}
package com.example.config;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class TestFilter2 implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)req;
System.out.println("[TestFilter2]request url is :"+request.getRequestURI());
filterChain.doFilter(req,resp);
}
}
二、通过FilterRegistrationBean注册Filter
package com.example.config;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FilterRegistrationConfig {
@Bean
public FilterRegistrationBean<TestFilter1> registerFilter1() {
FilterRegistrationBean<TestFilter1> bean = new FilterRegistrationBean<TestFilter1>();
bean.setFilter(new TestFilter1());
bean.setName("filter1");//
bean.addUrlPatterns("/*");//
bean.setOrder(1);//
return bean;
}
@Bean
public FilterRegistrationBean<TestFilter2> registerFilter2() {
FilterRegistrationBean<TestFilter2> bean = new FilterRegistrationBean<TestFilter2>();
bean.setFilter(new TestFilter2());
bean.setName("filter2");//
bean.addUrlPatterns("/*");//
bean.setOrder(0);//
return bean;
}
}
三、postman访问接口
四、控制台输出,可以看到TestFilter1和TestFilter2起作用了