Spring boot 中使用拦截器

25 篇文章 1 订阅

本文主要介绍在SpringBoot中如何使用拦截器
如有需要,可以参考
如有帮助,不忘 点赞

简单两步学会使用

1)首先创建一个类 WebConfig 实现 WebMvcConfigurer 这个接口
	@Configuration		//表明为配置类
	public class WebConfig implements WebMvcConfigurer {
	    @Autowired
	    private SessionInterceptor sessionInterceptor;
	    
		/**实现addInterceptors这个方法*/ 
	    @Override
	    public void addInterceptors(InterceptorRegistry registry) {
	        registry.addInterceptor(sessionInterceptor).addPathPatterns("/**");
	    }
	}
2)创建一个自己的 Interceptor 实现 HandlerInterceptor 接口
实现其中的三个方法
  • preHandle:
    拦截器处理之前进行的方法
  • postHandle
    拦截器处理的时候进行的方法
  • afterCompletion
    拦截器处理之后进行的方法
  • 然后我们要在什么时候处理 , 处理什么 , 只需要在对应的时间段中写就好了
  • 然后在WebConfig 中加载一下

示例:

	@Service
	public class SessionInterceptor implements HandlerInterceptor {
	    @Autowired
	    private UserMapper userMapper;
	    @Override
	    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
	        Cookie[] cookies = request.getCookies();
	        if (cookies != null && cookies.length != 0)
	            for (Cookie cookie : cookies) {
	                if ("token".equals(cookie.getName())) {
	                    String token = cookie.getValue();
	                    User user = userMapper.findByToken(token);
	                    if (user != null) {
	                        //当获取到用户后存入session, session相当于是一个用户登记表
	                        //前段通过查询session, 来判断用户是否登录
	                        request.getSession().setAttribute("user", user);
	                    }
	                    break;
	                }
	            }
	        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 {
	
	    }
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值