spring boot filter实现

1.注解方式直接配置

@Component@ServletComponentScan@WebFilter(urlPatterns="/*",filterName="loginFilter")publicclassLoginFilterimplementsFilter{}

1、@Component 这个注解的目的是将LoginFilter交给容器来处理。也就是让LoginFilter起作用

2、@ServletComponentScan 这个使用来扫描@WebFilter 的让@WebFilter起作用。当然对于servlet线管注解也是可以的。

这个@ServletComponentScan最好写在Apllication这个上面,通用配置。

我这里因为只有一个Filter所以没有写在Application上面。

3、@WebFilter 这个用处显而易见,针对于什么链接做过滤,filter的名称是为什么。

2.@Bean形式配置

直接继承Filter

publicclassLoginFilterimplementsFilter{}

或继承GenericFilterBean

publicclassLoginFilterextendsGenericFilterBean{}

@SpringBootApplicationpublicclassSpringRestApplication{publicstaticvoidmain(String[]args){SpringApplication.run(SpringRestApplication.class,args);}@BeanpublicFilterRegistrationBeanfilterRegistrationBean(){FilterRegistrationBeanregistrationBean=newFilterRegistrationBean();HTTPBasicAuthorizeAttributehttpBasicFilter=newHTTPBasicAuthorizeAttribute();registrationBean.setFilter(httpBasicFilter);List<String>urlPatterns=newArrayList<String>();urlPatterns.add("/user/*");registrationBean.setUrlPatterns(urlPatterns);returnregistrationBean;}}