1. 使用自定义参数注解获取 token 中User数据
使用背景
在springboot项目开发中需要从token中获取用户信息时通常的方式要经历几个步骤
拦截器中截获token
TokenUtil工具类解析token中的用户信息
把解析结果存入到成员变量中
controller中通过TokenUtil工具类提供的静态方法获取用户信息
下面是过程示例代码
/*--------1.拦截器中获取---------*/
String token =request.getHeader("token")
/*--------2.解析---------*/
//如果没过期且有效
if(!TokenUtil.isExpire(token)){
//解析token把结果存入成员变量
TokenUtil.decode(token);
}
/*--------3.controller中获取---------*/
User currentUser=TokenUtil.getUser();看上去也没什么复杂指处,但是如果在每个Controller中都加上一句 User currentUser=TokenUtil.getUser();感觉有些多余(潜意识知道肯定有更简洁的方法能减少这里所写代码)
下面介绍一种使用自定义参数注解的方法简化获取结果
最后预期达到的效果
正文开始
1. 拦截器中的代码(GlobalInterceptor.java)
2. 注解类 (CurrentUser.java)
3. CurrentUser注解实现类(CurrentUserHandlerMethodArgReslover.java)
4. 在SpringBoot启动类中注册 注解的实现类与拦截器(ServerApplication.java)
5. 在Controller中使用
到此就实现了预期的结果,回头看发现虽然多写了不少代码,但是在用的时候还是更加简洁明了,美丽大方(给自己比个❤)
Last updated
Was this helpful?