-
简单注解类
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
相关推荐
kfyty7257 分钟前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案猫头虎9 分钟前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题李少兄9 分钟前
在 IntelliJ IDEA 中修改 Git 远程仓库地址忆~遂愿29 分钟前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略小韩学长yyds39 分钟前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable仟濹40 分钟前
【Java基础】多态 | 打卡day2Re.不晚41 分钟前
JAVA进阶之路——无奖问答挑战2Ro Jace2 小时前
计算机专业基础教材mango_mangojuice2 小时前
Linux学习笔记(make/Makefile)1.23程序员侠客行2 小时前
Mybatis连接池实现及池化模式