自定义注解实现接口权限控制--详细记录

JAVA-自定义注解实现接口权限控制,一步一步记录

提示:通过自定义接口实现权限控制

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

今天来学习下如何做权限控制。


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建一个Java注解(Annotation)的定义

这里我们定义一个名叫 AnyRoles 的接口,定义方法如下:
其中 @Target 和 @Retention 和 @Document 这3个称为元注解Meta-Annotation)
元注解(Meta-Annotation)是指注解的注解,即用于修饰其他注解的注解。元注解在Java中主要用于控制注解的行为和属性。

@Target({
   ElementType.METHOD, ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)
@Document
public @interface AnyRoles {
   
      RoleEnum[] role();
}

@Target({ElementType.METHOD, ElementType.TYPE}):
这个元注解指定了AnyRoles注解可以被应用于哪些程序元素。在这个例子中,AnyRoles可以用于标注方法(METHOD)和类、接口等类型声明(TYPE)。
@Retention(RetentionPolicy.RUNTIME):
这个元注解定义了AnyRoles注解的保留策略为运行时(RUNTIME)。这意味着该注解将在编译后的字节码文件中存在,并且可以通过反射在运行时访问到。
(以下作为@Retention了解,不想了解可跳过往后看)

在Java中,注解(Annotation)的@Retention策略用来指定注解的保留策略,即注解信息在什么级别可用。@Retention是一个元注解,它定义了注解的保留级别。@Retention策略有三个选项:SOURCE、CLASS和RUNTIME。下面分别解释这三个选项的区别:

SOURCE(源码级别保留):

注解仅在源码中保留,当Java文件被编译成.class文件时,注解信息会被丢弃。
这种保留策略适用于编译时处理的场景,比如编译器在编译时需要读取注解信息,但运行时不需要这些信息,比如代码检查、编译时错误提示等,选择SOURCE。
例子:@Override注解,它用于检查方法是否正确地覆盖了父类的方法。
CLASS(类文件级别保留):

注解在源码和.class文件中都保留,但在Java虚拟机(JVM&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值