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.
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"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With