起首建立一個過濾器TimeFilter,這個過濾器實現了Filter接口,有三個默認的方式,別離是init(FilterConfig arg0)、destroy()、doFilter(ServletRequest request, ServletResponse response, FilterChain chain),此中doFilter是真正實現阻擋操作的。
 若是想讓過濾器TimeFilter起感化,只需要在TimeFilter類的上面加上@Componet注解即可。若是不利用@Componet注解,那么若何利用過濾器呢?我們建立一個WebConfig類,這個類擔當WebMvcConfigurerAdapter,我們建立一個FilterRegistrationBean,插手Filter的設置裝備擺設,需要注重url的過濾法則。錯誤謬誤是:只能拿到http的請乞降響應,并不知道是哪個節制器哪個方式處置的。
 
 END阻擋器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方式注冊阻擋器。
 ENDSpring中的切片Aspect阻擋,我們在界說切點的時辰設置阻擋法則,例如阻擋所有UserController的方式等。在切片類上利用@Aspec和@Component注解即可生效。
 END0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!