Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将值设置为属性文件中的可缓存注释_Java_Spring_Spring Cache - Fatal编程技术网

Java 将值设置为属性文件中的可缓存注释

Java 将值设置为属性文件中的可缓存注释,java,spring,spring-cache,Java,Spring,Spring Cache,我正在使用Spring可缓存注释,目前我正在努力从属性文件中添加缓存名称 我试过: @Cacheable("${some.cache.name}") 及 有一个SPI可以做到这一点,它比仅仅使用SpEL强大得多。您可以实现CacheResolver并在运行时解析缓存实例。您可以使用注释类型或通过注释提供的任何名称 您可以使用@CacheConfig在类级别或通过实现CacheConfigurer全局指定每个注释的CacheResolver 检查您遇到了什么样的错误/问题?从文档中,我认为@Ca

我正在使用Spring可缓存注释,目前我正在努力从属性文件中添加缓存名称

我试过:

@Cacheable("${some.cache.name}")


有一个SPI可以做到这一点,它比仅仅使用SpEL强大得多。您可以实现CacheResolver并在运行时解析缓存实例。您可以使用注释类型或通过注释提供的任何名称

您可以使用@CacheConfig在类级别或通过实现CacheConfigurer全局指定每个注释的CacheResolver


检查

您遇到了什么样的错误/问题?从文档中,我认为@Cacheable注释的value/cacheNames属性不支持SpEL,因为与key属性不同,value/cacheNames的SpEL没有任何说明。描述为什么要从属性文件中读取缓存名称。也许还有另一种方法可以实现你想要的。我只想在属性文件中保留缓存名称。我找不到注射的方法,这是可以理解的。但是为什么呢?通常,缓存的名称不需要配置。只需在代码中的某个位置定义一个常量public static final String cache_name=myCache,并引用该常量,而不是从配置中读取它。
@Cacheable("#{'${some.cache.name}'}")