-
简单注解类
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
相关推荐
what丶k1 天前
深度解析:以Kafka为例,消息队列消费幂等性的实现方案与生产实践星火开发设计1 天前
C++ 输入输出流:cin 与 cout 的基础用法毕设源码-邱学长1 天前
【开题答辩全过程】以 基于Springboot的酒店住宿信息管理系统的设计与实现为例,包含答辩的问题和答案仟濹1 天前
【Java加强】1 异常 | 打卡day1AllData公司负责人1 天前
【亲测好用】实时开发平台能力演示pcm1235671 天前
设计C/S架构的IM通信软件(3)咖啡啡不加糖1 天前
Grafana 监控服务指标使用指南:打造可视化监控体系€8111 天前
Java入门级教程26——序列化和反序列化,Redis存储Java对象、查询数据库与实现多消费者消息队列多多*1 天前
Mysql数据库相关 事务 MVCC与锁的爱恨情仇 锁的层次架构 InnoDB锁分析cyforkk1 天前
15、Java 基础硬核复习:File类与IO流的核心逻辑与面试考点