Spring 3.1 Cache Abstraction without parameters

caching, spring

Solution

You can override this behavior by using "Cache SpEL available metadata" as described here:

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/cache.html#cache-spel-context

In your example, you could specify the following:

@Cacheable(value = "xCache", key = "#root.methodName") 
public List<X> loadAllX() { 
    ... 
} 

Which would cache the list of X in the "xCache" with key "loadAllX"

Problem

reading about the new Cache Abstraction in Spring 3.1, I wanted to apply this feature to my project. Can I cache the call to a method that has no parameters? ``` @Cacheable("xCache") public List<X> loadAllX() { ... } ``` The linked blog post states a cache lookup is performed using as key the method parameters so it should not be possible to cache this method, right? Short answer: Yes, methods without any arguments will get cached just like any other methods. I guess there will be exactly one entry in the cache for that method.

Original source