自定义注解中参数的作用

您所在的位置:网站首页 hdam9988参数 自定义注解中参数的作用

自定义注解中参数的作用

2023-03-23 14:25| 来源: 网络整理| 查看: 265

「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」。

我们都知道,注解本身就是一个“标记”。而这个标记本身自带很多特性,这些特性又可以应用到很多场景。

下面文章我们就围绕着注解的参数这个特性及参数使用方法来展开介绍。

注解的参数

对于在日常中经常使用的注解,我们往往可以发现注解是有参数属性的,比如说最常用的@Autowire 就可以选择是否使用required 参数。点进去@Autowired 注解的定义,我们可以看到如下代码:

@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Autowired { /** * Declares whether the annotated dependency is required. *

Defaults to {@code true}. */ boolean required() default true; } 复制代码

其实,所有注解的大致结构和以上代码结构类似。拿@Autowired 举例来说,其中的required 就是这个注解(@Autowired)的参数。

日常使用中,我们除了使用比如框架中定义的注解以外,还可以自定义注解。

(关于自定义注解可以参考这篇文章:java 自定义注解,文章中有自定义注解参数相关的介绍)

自定义注解定义的过程中,就少不了和注解参数打交道。对于注解参数的定义我们或多或少的应该是了解了,但是有人却不知道定义了注解的参数之后,如何使用这些参数。接下来就会介绍自定义注解参数的应用场景。

注解参数的使用方法

我们都知道,自定义注解中参数的定义有两个方面需要注意的。

第一个就是我们在自定义注解的时候,按照java 语言的既有思维看,上文中boolean required() default true; 可能会被当做一个方法,其实这个是“注解类型参数”。我们所说的注解中自定义的参数就是这个required。

第二个就是要确定如何使用这个参数。参数可以有默认值,如果没有默认值,那么在使用这个注解的时候,必须要为此参数赋值。而使用这个参数的方法就是利用java 的反射机制。通过反射机制,我们可以在拦截器或者aop 中使用为此参数设置的值进行相应的逻辑操作。

而对于通过反射获取注解参数有多个api,可以具体问题具体分析。这篇文章就是做一个方向上的指引,读者可以根据使用场景,即时进行查询及判断使用哪个api。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3