@AliasFor别名未生效问题解决
解决
@AliasFor 是 一个注解,用来给注解的字段定义别名,这样别名的变量会被赋予一样的值,
例如,
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DawnCacheEvict {
@AliasFor("name")
String value() default "";
/**
* 命名
*/
@AliasFor("value")
String name() default "";
}
那么,@DawnCacheEvict ("xxx")和@DawnCacheEvict(name = "xxx")和@DawnCacheEvict(value="xxx")这三者都是等价的。
value 和 name 都是xxx。
但是注意,如下这样调用是取不到别名的效果的
DawnCacheEvict dawnCacheEvict = method.getAnnotation(DawnCacheEvict.class);
因为@AliasFor是spring的特殊注解!不是Java原生支持的,因此要用Spring的工具类取值!!!
改成如下即可:
DawnCacheEvict dawnCacheEvict = AnnotationUtils.getAnnotation(method, DawnCacheEvict.class);
心中花枯萎,时光它去不回...
版权声明
本文章由作者“衡于墨”创作,转载请注明出处,未经允许禁止用于商业用途
发布时间:2021年06月09日 22:12:08
备案号:
闽ICP备19015193号-1
关闭特效
评论区#
还没有评论哦,期待您的评论!
引用发言