您的位置:首页 > 编程语言 > Java开发

Springboot整合Servlet Filter和Interceptor

2020-07-21 04:14 1446 查看

一、整合Filter

1、写一个自己的Filter

[code]@Component
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("initFilter");
}

@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("doFilter...");
filterChain.doFilter(servletRequest, servletResponse);
}

@Override
public void destroy() {
System.out.println("destroy");
}
}

2、写一个Config类

[code]@Configuration
public class WebConfig {

@Autowired
private MyFilter myFilter;

public FilterRegistrationBean initFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(myFilter);
filterRegistrationBean.setName("MyFilter");
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}
}

二、整合Interceptor

1、写一个自己的Interceptor,当然这里preHandle等方法现在有默认实现,可以按需覆盖

[code]@Component
public class MyInterceptor implements HandlerInterceptor {

@Autowired
private EverestConfig everestConfig;

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return null != everestConfig.getImageServer();
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

}
}

2、写一个config类

[code]@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AuthInterceptor()).addPathPatterns("/api/**").excludePathPatterns("/api/index/auth");
WebMvcConfigurer.super.addInterceptors(registry);
}
}

这里我们假设对所有的api接口做拦截,并放行鉴权的接口。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: