springboot filter注册
filter:拦截指定路径,添加一些自定义操作
***********************
相关类及接口
Filter:过滤接口
public interface Filter {
default void init(FilterConfig filterConfig) throws ServletException {
}
void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException;
default void destroy() {
}
}
FilterRegistrantionBean:注册filter的实例bean
public class FilterRegistrationBean<T extends Filter> extends AbstractFilterRegistrationBean<T> {
private T filter;
********
构造方法
public FilterRegistrationBean() {
public FilterRegistrationBean(T filter, ServletRegistrationBean<?>... servletRegistrationBeans) {
********
常用方法
public T getFilter() {
public void setFilter(T filter) {
}
AbstractFilterRegistrationBean
public abstract class AbstractFilterRegistrationBean<T extends Filter> extends DynamicRegistrationBean<Dynamic> {
********
常用方法
public void setServletRegistrationBeans(Collection<? extends ServletRegistrationBean<?>> servletRegistrationBeans) {
public Collection<ServletRegistrationBean<?>> getServletRegistrationBeans() {
public void addServletRegistrationBeans(ServletRegistrationBean<?>... servletRegistrationBeans) {
public void setServletNames(Collection<String> servletNames) {
public Collection<String> getServletNames() {
public void addServletNames(String... servletNames) {
public void setUrlPatterns(Collection<String> urlPatterns) {
public Collection<String> getUrlPatterns() {
public void addUrlPatterns(String... urlPatterns) {
说明:urlpatterns支持通配符表达式
***********************
示例
*******************
filter 层
MyFilter
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletResponse.getOutputStream().println("hello world");
}
}
*******************
config 层
WebConfig:注册FilterRegistrationBean
@Configuration
public class WebConfig {
@Bean
public FilterRegistrationBean<MyFilter> initFilterRegistrationBean(){
FilterRegistrationBean<MyFilter> filterFilterRegistrationBean=new FilterRegistrationBean<>();
filterFilterRegistrationBean.setFilter(new MyFilter());
filterFilterRegistrationBean.addUrlPatterns("/**");
return filterFilterRegistrationBean;
}
}
***********************
测试输出
localhost:8080/hello