search.png
关于我
menu.png
@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);

心中花枯萎,时光它去不回...

版权声明

知识共享许可协议 本文章由作者“衡于墨”创作,转载请注明出处,未经允许禁止用于商业用途

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
发布时间:2021年06月09日 22:12:08

评论区#

还没有评论哦,期待您的评论!

关闭特效