title: Spring cacheable not synchronized
body: <p>I have a singleton class (@Service annotated). This class has a method which takes 200/300ms to execute. </p>
  
  <p>This method is annotated with @Cacheable and synchronized.</p>
  
  <pre><code>@Cacheable(value="nextPlaying", key = "#startingFrom.getYear() + #startingFrom.getMonth() + #startingFrom.getDay() + #startingFrom.getHours() + #startingFrom.getMinutes() + #locale.getLanguage()")
  public synchronized List&lt;Match&gt; getNextPlaying(Date startingFrom, Locale locale)
  </code></pre>
  
  <p>By launching multiple threads calling this method I see that for these 200/300ms until the result isn't cached, it executes again and again the method until is cached. 
  Seems that @Cacheable annotation doesn't take <em>synchronized</em> into account...
  Is this a bug? </p>