diff --git a/LoginUser.java b/LoginUser.java new file mode 100644 index 0000000..88e1ad8 --- /dev/null +++ b/LoginUser.java @@ -0,0 +1,61 @@ +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; + + /** + * 用户角色类型限制(可选) + * + *用于指定允许访问的用户角色类型,如: + *