如果说你经常关注互联网相关信息,那么可能你也知道springcloud,只要一提到微服务框架首先就会想到springcloud,那么你了解过springcloud拦截器是如何使用的吗?使用它有什么作用呢?
第一种要给大家介绍的是编写自定义拦截器SignAutheInterceptor.class的方式。首先我们先来了解一下下面几个属性:
preHandle:在业务处理器处理请求之前会被调用。预处理,可以进行编码、安全控制、权限校验等一些处理;
postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。之后处理(调用了Service并返回ModelAndView,但未进行页面渲染),有机会修改ModelAndView (这个博主就基本不怎么用了);
afterCompletion:就是在DispatcherServlet完全处理完请求后被调用,可以用于清理资源等等。返回处理(已经渲染了的页面);
package com.xiaohang.socialcard.pre.intercepter; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 自定义拦截器 */ public class SignAutheInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { /** * 通过HttpServletRequest和HttpServletResponse做相应数据处理 */ return true; } @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 { }
第二种就是配置拦截器InterceptorConfig.class。
我们可以通过addPathPatterns属性可配置需要进行拦截的请求路径,还可以通过excludePathPatterns属性可配置不进行拦截的请求路径:
package com.xiaohang.socialcard.pre.intercepter; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; /** * 配置拦截器 */ @Configuration public class InterceptorConfig extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new SignAutheInterceptor()).addPathPatterns("/api/v1/get/getToken"); super.addInterceptors(registry); } }
那么以上就是关于springcloud拦截器的所有内容了,还想了解更多的springcloud相关知识记得多多关注本站消息哦。