将变量传递给注释

问题描述:

我使用Spring Security和@PreAuthorize来保护方法。我想要做的事,如:将变量传递给注释

控制器:

@PreAuthorize(SampleStaticClass.STATIC_FINAL_FIELD) 
void someMethod() {} 

服务:

// SampleStaticClass 
public static final String STATIC_FINAL_FIELD = someService().getThisFieldFromDatabase(); 

但这需要常量表达式。任何解决方案

可以或者(a)硬编码值之间添加映射并存储在DB或(b)取溶液从this thread

@PreAuthorize("@mySecurityService.hasCustomPermission()") 
some method() {} 

当然,我更喜欢的第一个,因为它是简单的实现和支持。