package com.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * 登录用户信息注入注解 * *
该注解用于Spring MVC控制器方法参数,实现当前登录用户对象的自动注入, * 简化在Controller中获取认证用户信息的操作流程。
* *核心功能: *
典型使用场景: *
{@code
* @GetMapping("/orders")
* public ResponseEntity> getUserOrders(
* @LoginUser User user // 自动注入当前登录用户
* ) {
* return orderService.findByUser(user);
* }
* }
*
* @author YourName
* @version 1.0
* @since 2023-10-01
*/
@Target(ElementType.PARAMETER) // 限定注解仅能标注在方法参数上
@Retention(RetentionPolicy.RUNTIME) // 注解在运行时保留,可通过反射机制读取
public @interface LoginUser {
/**
* 是否强制要求用户登录(默认true)
*
* 当设置为true时,如果未检测到登录用户,将抛出未授权异常(401); * 设置为false时,未登录则注入null值。
* * @return 是否强制要求登录状态 */ boolean required() default true; /** * 用户角色类型限制(可选) * *用于指定允许访问的用户角色类型,如: *