-
简单注解类
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
相关推荐
morris131几秒前
【redis】布隆过滤器的Java实现五行星辰14 分钟前
Java链接redis编程毕设14 分钟前
【含文档+PPT+源码】基于微信小程序的在线考试与选课教学辅助系统异常驯兽师17 分钟前
Java集合框架深度解析:List、Set与Map的核心区别与应用指南A boy CDEF girl39 分钟前
【JavaEE】定时器xiaozaq1 小时前
Spring Boot静态资源访问顺序嗨起飞了2 小时前
Maven快速入门指南A boy CDEF girl2 小时前
【JavaEE】线程池Joeysoda2 小时前
JavaEE进阶(2) Spring Web MVC: Session 和 CookieY雨何时停T2 小时前
深入理解 Java 虚拟机之垃圾收集