我们在项目中很多地方用到的配置代码会写配置文件或者自定义的配置类,现在讲解一下在项目中如何添加自定义注解。
1、创建定义注解
创建名为@LoginUser 的注解,用于获取用户信息。
/**
* @Description 自定义注解 使用@interface关键字定义注解 登录用户信息
* @Author sya
* @Date 2019/9/17 14:12
*/
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface LoginUser {
// 若有成员 以无参无异常方式声明
// 成员类型是受限的,合法的类型包括原始类型及String,Class,Annotation,
// 如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员和赋值号(=)
// 注解类可以没有成员,没有成员的注解成为标识注解
}
2、创建处理@LoginUser注解的参数解析器。
这个解析器有两个方法:
(1)supportsParameter()将我自定义的UserRoleInfoDTO类跟注解@LoginUser绑定在一起。
(2)resolveArgument()是UserRoleInfoDTO类赋值逻辑处理,我这里是将随请求过的token(登陆后的用户返回的token)解析并查询用户信息,赋值于UserRoleInfoDTO类。