-
简单注解类
java@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ErasePasswordAnno { @AliasFor(attribute = "expression") String value() default "" ; String expression() default "" ; } -
嵌套注解类
java@Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @ErasePasswordAnno public @interface MapErasePasswordAnno { @AliasFor(annotation = ErasePasswordAnno.class, attribute = "value") String value() default "['recordList']" ; @AliasFor(annotation = ErasePasswordAnno.class, attribute = "expression") String expression() default "['recordList']" ; } -
编写测试代码
java@Slf4j public class AliasForAnnoTest { @Test void simple() throws NoSuchMethodException { Method method = MapErasePasswordAnnoTest.class.getMethod("hello"); ErasePasswordAnno annotation = AnnotationUtils.getAnnotation(method, ErasePasswordAnno.class); Assertions.assertNotNull(annotation); log.info("annotation value : {}", annotation.value()); log.info("annotation expression : {}", annotation.value()); } @Test void complex() throws NoSuchMethodException { Method method = MapErasePasswordAnnoTest.class.getMethod("hello2"); ErasePasswordAnno annotation = AnnotatedElementUtils.findMergedAnnotation(method, ErasePasswordAnno.class); Assertions.assertNotNull(annotation); log.info("annotation value : {}", annotation.value()); log.info("annotation expression : {}", annotation.value()); } @ErasePasswordAnno("username") public void hello(){ } @MapErasePasswordAnno public void hello2(){ } }
注解Spring @AliasFor使用笔记
yicj2024-08-06 14:25
相关推荐
深入云栈13 分钟前
Netty 4.2.x 源码深度解析 (二十三):ByteBuf 核心设计 —— 索引、类型与零拷贝wang_shu_mo_ran1 小时前
MyBatis 从入门到进阶(一)量化分析码农3 小时前
股票历史数据的复权参数对照:多级别返回的字段与数值差异猫猫不是喵喵.3 小时前
从0到1创建一个微服务项目瑞雪兆丰年兮3 小时前
JavaWeb-day13-SpringBootWeb事务管理&AOP曲径海盗3 小时前
Try-Except怎么用,3个追问解答在自动化下的应用Cosolar4 小时前
极简智库:快速搭建你的开源项目教程阅读平台,让 docs/ 目录被更多人看见nice_lcj5204 小时前
【从零理解 Spring AI · 16】Agent 与工作流:什么该写死,什么该让模型决定北京云帆互联科技5 小时前
云帆培训考试系统更新说明:v9.3.0学长毕设6 小时前
基于SpringBoot的景点管理系统-附源码