起首建立一个过滤器TimeFilter,这个过滤器实现了Filter接口,有三个默认的方式,别离是init(FilterConfig arg0)、destroy()、doFilter(ServletRequest request, ServletResponse response, FilterChain chain),此中doFilter是真正实现阻挡操作的。
若是想让过滤器TimeFilter起感化,只需要在TimeFilter类的上面加上@Componet注解即可。若是不利用@Componet注解,那么若何利用过滤器呢?我们建立一个WebConfig类,这个类担当WebMvcConfigurerAdapter,我们建立一个FilterRegistrationBean,插手Filter的设置装备摆设,需要注重url的过滤法则。错误谬误是:只能拿到http的请乞降响应,并不知道是哪个节制器哪个方式处置的。
阻挡器Interceptor是Spring框架自己实现的,我们建立一个类TimeInterceptor,这个类实现HandlerInterceptor的接口,我们经由过程这种体例界说一个阻挡器,这个阻挡器默认的方式有:preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)、postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView)、afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex),我们按照需要写具体的实现,无论方式是否抛出异常城市走到afterCompletion,preHandle若是返回false则不会挪用后面的方式。
阻挡器Interceptor要想起感化,只在类上添加@Component注解是不敷的,我们还需要额外的设置装备摆设。我们依旧利用WebConfig类,这个类担当WebMvcConfigurerAdapter,addInterceptors方式注册阻挡器。
Spring中的切片Aspect阻挡,我们在界说切点的时辰设置阻挡法则,例如阻挡所有UserController的方式等。在切片类上利用@Aspec和@Component注解即可生效。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!