使用spring自定义参数解析器和自定义注解实现可插拔的获取登陆用户信息

前言

Web系统里,调接口时,通常需要获取当前登陆系统的用户信息,实现方法有很多,常见的是在aop切面里拦截接口进行是否鉴权验证,然后获取当前用户信息。

本篇文章,主要介绍的是另一种方式,spring的自定义参数解析器HandlerMethodArgumentResolver,结合自定义注解实现。

使用HandlerMethodArgumentResolver可以灵活的给某个接口做统一的参数处理,废话不多说,以下是实现步骤。

一、定义一个注解

改注解是用于标记待处理的参数,这边就是我们的User。

二、自定义参数处理类SecurityUserMethodArgumentResolver

让它实现HandlerMethodArgumentResolver,需要根据自己的业务重写两个方法。

  1. supportsParameter:用于判定是否需要处理该参数分解,返回true为需要,并会去调用下面的方法resolveArgument。
  2. resolveArgument:真正用于处理参数分解的方法,返回的Object就是controller方法上的形参对象。

三、controller类里使用

0

发表评论

邮箱地址不会被公开。