-
简单注解类
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
相关推荐
sunshine22 girl3 小时前
Java学习五 面向对象高级5 内部类1苏supper3 小时前
Spring Boot多环境配置与打包运行用户1305180712154 小时前
JDBC学习DAY2:从Statement到PreparedStatement蛋蛋的就会顺顺的4 小时前
hot100——矩阵周杰偷奶茶5 小时前
【Java】数组的定义和使用(附管理系统实战案例)橙子圆1235 小时前
JUC之集合类不安全谢亮_vipxieliang6 小时前
Stream API 不是银弹:常见坑与性能建议源码宝6 小时前
Web‑PACS 云影像源码|Java+Vue3 医院影像管理系统完整方案ShineWinsu7 小时前
对于Redis:string类型的解析三8449 小时前
Fastjson 漏洞 · 02 · autoType 机制与 checkAutoType