将值从Spring元注释传递到另一个注释

时间:2020-02-12 16:56:18

标签: spring-annotations

我的用例:
我将以@PreAuthorize的形式有很多@PreAuthorize("hasAuthority('RESPECT_MY_AUTHORITY')")注释。
我想创建一个将权限作为值的元注释@HasAuthority,并将其传递给@PreAuthorize("hasAuthority(<value>)")

感觉不可能。我最接近所需的是@AliasFor注释。但问题是我无法在@HasAuthority中添加任何值。因此,我每次必须重复hasAuthority部分。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasAuthority('RESPECT_MY_AUTHORITY')")
public @interface HasAuthority {

    @AliasFor(annotation = PreAuthorize.class, attribute = "value")
    String value();

}

我想要类似的东西

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasAuthority(#value)")
public @interface HasAuthority {

    String value();

}

有什么想法我怎么做,或者有可能吗?

0 个答案:

没有答案