Spring MVC Restful API的拦截机制的实现有:过滤器Filter、拦截器Interceptor、切片Aspect 。 接下来会为大家介绍这三种拦截机制的具体实现 。
需要这些哦
IntelliJ IDEA
过滤器Filter1起首建立一个过滤器TimeFilter , 这个过滤器实现了Filter接口 , 有三个默认的方式 , 别离是init(FilterConfig arg0)、destroy()、doFilter(ServletRequest request, ServletResponse response, FilterChain chain) , 此中doFilter是真正实现阻挡操作的 。
文章插图
2【Spring MVC Restful API的拦截】若是想让过滤器TimeFilter起感化 , 只需要在TimeFilter类的上面加上@Componet注解即可 。 若是不利用@Componet注解 , 那么若何利用过滤器呢?我们建立一个WebConfig类 , 这个类担当WebMvcConfigurerAdapter , 我们建立一个FilterRegistrationBean , 插手Filter的设置装备摆设 , 需要注重url的过滤法则 。 错误谬误是:只能拿到http的请乞降响应 , 并不知道是哪个节制器哪个方式处置的 。
文章插图
文章插图
阻挡器Interceptor1阻挡器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则不会挪用后面的方式 。
文章插图
文章插图
2阻挡器Interceptor要想起感化 , 只在类上添加@Component注解是不敷的 , 我们还需要额外的设置装备摆设 。 我们依旧利用WebConfig类 , 这个类担当WebMvcConfigurerAdapter , addInterceptors方式注册阻挡器 。
文章插图
切片Aspect1Spring中的切片Aspect阻挡 , 我们在界说切点的时辰设置阻挡法则 , 例如阻挡所有UserController的方式等 。 在切片类上利用@Aspec和@Component注解即可生效 。
文章插图
注重事项三种阻挡操作的体例需要操练才能更快把握 。
以上内容就是Spring MVC Restful API的拦截的内容啦 , 希望对你有所帮助哦!
推荐阅读
- Spring最容易报500错误原因解决办法
- Net.Core3.0教程四:MVC网站搭建
- 如何编写针对Restful API的测试用例
- SpringBoot整合Thymeleaf和FreeMarker模板引擎
- springcloud框架怎么搭建
- SpringBoot Security简介
- SpringBoot 配置HTTPS
- Visual Studio Code 创建ASP.NET Core MVC应用
- idea中springboot怎么开启debug调试
- 图解使用VS 2017创建ASP.NET MVC单元测试项目