-
简单注解类
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
相关推荐
百锦再2 分钟前
Java synchronized关键字详解:从入门到原理(两课时)油丶酸萝卜别吃7 分钟前
什么是 Java 内存模型(JMM)?量子炒饭大师23 分钟前
【C++入门】Cyber神经的义体插件 —— 【类与对象】内部类Hx_Ma1627 分钟前
测试题(四)Never_Satisfied40 分钟前
在c#中,抛出异常,并指定其message的值没有bug.的程序员44 分钟前
IDEA 效能巅峰实战:自定义模板 Live Templates 内核、快捷键精密逻辑与研发提效深度指南追随者永远是胜利者1 小时前
(LeetCode-Hot100)22. 括号生成逝水如流年轻往返染尘1 小时前
java中的泛型百锦再1 小时前
Java重入锁(ReentrantLock)全面解析:从入门到源码深度剖析知识即是力量ol1 小时前
口语八股—— Spring 面试实战指南(终篇):常用注解篇、Spring中的设计模式