spring boot filter实现
1.注解方式直接配置
@Component
@ServletComponentScan
@WebFilter(urlPatterns = "/*",filterName = "loginFilter")
public class LoginFilter implements Filter{
}
1、@Component 这个注解的目的是将LoginFilter交给容器来处理。也就是让LoginFilter起作用
2、@ServletComponentScan 这个使用来扫描@WebFilter 的让@WebFilter起作用。当然对于servlet线管注解也是可以的。
这个@ServletComponentScan最好写在Apllication这个上面,通用配置。
我这里因为只有一个Filter所以没有写在Application上面。
3、@WebFilter 这个用处显而易见,针对于什么链接做过滤,filter的名称是为什么。
2.@Bean形式配置
直接继承Filter
public class LoginFilter implements Filter{
}
或继承GenericFilterBean
public class LoginFilter extends GenericFilterBean{
}
@SpringBootApplication
public class SpringRestApplication {
public static void main(String[] args) {
SpringApplication.run(SpringRestApplication.class, args);
}
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
HTTPBasicAuthorizeAttribute httpBasicFilter = new HTTPBasicAuthorizeAttribute();
registrationBean.setFilter(httpBasicFilter);
List<String> urlPatterns = new ArrayList<String>();
urlPatterns.add("/user/*");
registrationBean.setUrlPatterns(urlPatterns);
return registrationBean;
}
}
转载于:https://blog.51cto.com/xinzhilian/2055501