我想在@Cacheable中使用枚举作为其缓存名称,例如
@Cacheable(CacheName.CACHE_A.getName())
我有一个示例枚举,例如
public enum CacheName {
CACHE_A("CACHE_A");
private final String name;
CacheName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
我尝试在我的服务方法中像常量字符串一样使用它作为缓存名称
@Cacheable(CacheName.CACHE_A.getName())
public MyObject getObject(){
//return something
}
这不起作用。
当我声明一个常量类时它就起作用了
public static String CACHE_A = "CACHE_A";
如果我更喜欢使用枚举而不是常量类,是否有任何解决方法,我没有看到任何区别,因为枚举应该是固定的,对吧?请指正,谢谢
public enum CacheName {
CACHE_A(Names.CACHE);
public class Names{
public static final String CACHE = "CACHE_A";
}
private final String label;
private CacheName(String label) {
this.label = label;
}
public String toString() {
return this.label;
}
}
在注释中你可以像这样使用它
@Cacheable(CacheName.CACHE_A.CACHE)
public MyObject getObject(){ .. }