使用spring @Cachable注释,我想使用spring el传递缓存区域(value = {})

时间:2017-08-09 11:45:01

标签: spring ehcache

我想使用cache分配spring el名称,但我将获得以下异常。 有没有办法使用cache传递spring el名称。

@Cacheable(value={"#p0"} ,key="#url", condition="#doCache")
    public byte[] httpGetAsByteArray(String cacheRegion,String url,HttpHeaders headers, List<MediaType> acceptableMediaTypes, boolean doCache,boolean proxyRequest) throws HttpBeanException, AuthenticationFailedException {

//logic is here.
}

获得例外:

java.lang.IllegalArgumentException: Cannot find cache named '#p0' for Builder[public byte[] com.vodafone.global.vfstart.juno.http.integration.service.HttpIntegrationService.httpGetAsByteArray(java.lang.String,java.lang.String,org.springframework.http.HttpHeaders,java.util.List,boolean,boolean) throws ] caches=[#p0] | key='#url' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='#doCache' | unless='' | sync='false'

1 个答案:

答案 0 :(得分:0)

在异常消息和@Cacheable javadoc中,value或等效的cacheNames属性似乎不支持Spring EL。

您可以通过利用cacheResolver attribute来实现您想要的目标。