springboot自定义拦截器

拦截器在实际开发中经常用到,如:日志记录、权限检查、性能检测。

注意:
1.拦截器类实现HandlerInterceptor。
2.之前配置的xml文件可以用类代替实现WebMvcConfigurer。
3.在启动项目的时候就已经创建了拦截器类对象。

实现:
1.定义类,实现HanderInterceptor接口,这里不用强制重写三个方法,springboot集成的spring版本5.0以上,之前的4.3.8必须强制实现。

@Component
public class ApiInterceptor implements HandlerInterceptor {
    public ApiInterceptor() {
    System.out.println("=======ApiInterceptor========");
    }
    /***
     * 重写拦截方法
     */
    @Override
    public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler)throws Exception {
    // TODO Auto-generated method stub
    String token=request.getParameter("token");进入控制单元之前判断令牌,类似单点登陆
    if(!StringUtils.isEmpty(token)) {
	    //数据库查询过程
	    if(token.equals("123456")) {实际上这个是数据库中获取的值进行比对
		    return true;
	    }
    }
    response.setContentType("text/html;charset=UTF-8");
    response.getWriter().write("权限不足..........");
    return false;
    }
}

2.定义注册拦截器类‘

@Configuration
public class WebConfigs implements WebMvcConfigurer{
 
    @Autowired
    private ApiInterceptor apiInterceptor; 注入拦截器类对象
    /***
     * 通过该方法,给项目注册拦截器
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    // TODO Auto-generated method stub
    //给项目中注册了一个拦截器
	    registry.addInterceptor(apiInterceptor) 
	    .addPathPatterns("/**") //需要拦截的路径 /**所有  
	    .excludePathPatterns("/images/**"); //直接放行路径,可以放行控制单元路径/代表static文件夹
	    }
     
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值