title: L1 + L2 caching strategy using Spring Cacheable
body: <p>I am trying to setup L1 + L2 caching strategy to use with <code>@Cacheable</code> annotation. My objective is </p>
  
  <ol>
  <li>Configure Caffeine Cache</li>
  <li>Configure Redis Cache</li>
  <li>Look up item in Caffeine Cache, if found return, else step 4</li>
  <li>Look up item in Redis Cache, if found return and cache in caffeine, else step 5</li>
  <li>Use real service to return the result.</li>
  </ol>
  
  <p>I know this is not supported out of the box, but i have been trying to read the documentation on how to go about wiring up such a solution.</p>
  
  <p>My current solution is to wrap my actual service is a <code>RedisBackedService</code> which has the <code>redisCacheManager</code> on the <code>cacheable</code> annotation which in turn is wrapped in a <code>CaffeineBackedService</code> which has a <code>caffeineCacheManager</code> on the <code>cacheable</code> annotation. Needless to say it seems redundant.</p>
  
  <p>Any pointers would be helpful.</p>