gpt4 book ai didi

java - 如何在 Java SE 11 中使用自定义注解?

转载 作者:行者123 更新时间:2023-12-04 17:14:26 24 4
gpt4 key购买 nike

我是 Java 中注释概念的新手,出于好奇,我试图在我的项目中创建自定义注释。我正在开发一个基于 Spring Boot 的项目,我将在其中创建几个 Controller ,我将在其中检查每个端点的授权。
我在每个 Controller 中调用此方法以检查该用户是否存在于系统中,并检查角色类型是否作为参数传递。
招聘工厂.getPermission().isInternalUser()
现在我介绍了一个 Annotation,可以在方法级别使用它来检查相同的事情。


import com.sap.vt.recruitment.enumeration.RoleType;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AccessedBy {
@AliasFor(value = "roleType")
RoleType[] value() default {RoleType.SUPER_ADMIN};

@AliasFor(value = "value")
RoleType[] roleType() default {RoleType.SUPER_ADMIN};
}
我想知道如何通过反射 API 进行此注释处理并使用相同的功能。此注释将用于几乎所有端点。

最佳答案

您可以使用反射库

    <dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.12</version>
</dependency>
然后您可以找到具有给定注释的所有方法
Reflections reflections = new Reflections("your.package", new MethodAnnotationsScanner());
final Set<Method> fieldsAnnotatedWith = reflections.getMethodsAnnotatedWith(AccessedBy.class);
之后你写你的逻辑来执行不同的检查

关于java - 如何在 Java SE 11 中使用自定义注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68948353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com