Spring:如何将注释用作另一个注释的参数?

时间:2013-08-19 11:13:29

标签: java spring annotations

我正在尝试做这样的事情

@Cacheevict(@Value("#{properties.cacheName}")

Syntax wise,这是错误的。是否有其他方式来实现此类功能?

2 个答案:

答案 0 :(得分:0)

对于支持SpEL的那些注释属性,它在API documentation中有记录,在这种情况下,您可以直接添加SpEL而不是将其包装在另一个@Value注释中。

不幸的是@CacheEvict annotation的value属性不支持SpEL表达式,因此只能直接包含要驱逐的缓存的名称。

答案 1 :(得分:0)

在您的场景中,我认为您应该为缓存名称到真实缓存的非静态映射实现CacheManager接口。