spring boot 新增拦截器

SpringBoot配置拦截器

最近自己新搭了个boot服务,尝试自己完成一个小的项目,第一步就是配置个拦截器,校验用户权限
@Component
public class LogInInterceptor implements HandlerInterceptor{
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("---------开始拦截---------");
      
        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 {

    }
}

定义一个拦截器,注意@Component注解,不然初始化可能找不到

然后定义一个拦截器的启动配置

@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter {
    @Autowired
    private LogInInterceptor logInInterceptor;
    /*@Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(logInInterceptor).addPathPatterns("/**").excludePathPatterns("/loginIn");
    }*/
    //    这个方法是用来注册拦截器,我们自己写好的拦截器是需要添加注册才能生效
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //.addPathPatterns("/**") 拦截所有请求
        registry.addInterceptor(logInInterceptor).addPathPatterns("/**")
                .excludePathPatterns("/login");
        super.addInterceptors(registry);
    }
}

@Configuration注解不能缺少,将java文件作为spring的配置文件.
addPathPatterns为拦截的路径,excludePathPatterns为路径白名单.既然是登录拦截 就将login放开.

preHandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;
postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了Service并返回ModelAndView,但未进行页面渲染),有机会修改ModelAndView ;
afterCompletion:在DispatcherServlet完全处理完请求后被调用,可用于清理资源等。返回处理(已经渲染了页面);
简单而言:preHandle、postHandle、afterCompletion分别在方法调用前、调用时、调用后执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值