🍕6. 自定义注解+AOP实现接口鉴权和认证
选中新版正文中的对应文字,然后点“定位到这里”。
1. 如何自定义注解?
自定义注解主要包括以下几个步骤:
- 定义注解:使用@interface关键字定义注解。
- 注解元素:在注解中定义元素,就像在接口中定义方法。
- 元注解:使用元注解(如@Retention、@Target等)来描述注解的行为。
a. 定义注解
- 可以使用@interface关键字来定义一个注解。下面是一个简单的例子:
- MyAnnotation注解有两个元素:value和number。其中,number有一个默认值0。
public @interface MyAnnotation {
String value();
int number() default 0;
}
b. 元注解
元注解是注解的注解,用来描述注解本身的行为。常见的元注解有:
- @Retention:指明注解的保留策略。
- @Target:指明注解的使用目标。
@Retention
- @Retention指定了注解的生命周期,它有三个取值:
- RetentionPolicy.SOURCE:注解只在源代码中存在,编译后就不存在了
- RetentionPolicy.CLASS:注解在编译后会存在于.class文件中,但在运行时不会存在。
- RetentionPolicy.RUNTIME:注解在运行时依然存在,可以通过反射读取。
@Target
- @Target指定了注解可以使用的地方,如类、方法、字段等。常见的取值有:
- ElementType.TYPE:用于类、接口、枚举、注解类型。
- ElementType.FIELD:用于字段或属性。
- ElementType.METHOD:用于方法。
- ElementType.PARAMETER:用于参数。
- ElementType.CONSTRUCTOR:用于构造函数。
- ElementType.LOCAL_VARIABLE:用于局部变量。
c. 完整的自定义注解示例
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
// 定义注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAn...未能定位到原文的划线
已加入星球,可直接知识星球授权登录
二哥编程星球目前包含:
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复