-
简单注解类
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
相关推荐
ever_up97322 分钟前
EasyExcel的导入与导出及在实际项目生产场景的一下应用例子小小小小关同学1 小时前
Spring Cloud LoadBalancerok!ko1 小时前
设计模式之工厂模式(通俗易懂--代码辅助理解【Java版】)丷丩2 小时前
一个Java中有用的JacksonUtil类爱摄影的程序猿2 小时前
JAVA springboot面试题今日分享qq_317060953 小时前
java之http client工具类ZJKJTL3 小时前
Spring中使用ResponseStatusExceptionResolver处理HTTP异常响应码莫莫向上成长4 小时前
Javaweb开发——maven说书客啊4 小时前
计算机毕业设计 | springboot旅行旅游网站管理系统(附源码)一只爱吃“兔子”的“胡萝卜”4 小时前
八、Maven总结