Applies caching around a method invocation.
A cached object or the result of the Proceed call.
This method tries to retrieve an object from the cache, using the supplied invocation to generate a cache key. If an object is found in the cache, the cached value is returned and the method call does not proceed any further down the invocation chain.
If object does not exist in the cache, the advised method is called (using Proceed) and any return value is cached for the next method invocation.
|Exception||If any of the interceptors in the chain or the target object itself throws an exception.|