title: @CachePut does not update cache
body: <p>I would like to cache <code>getText</code> method and update cache on <code>setText</code>. By now cache on <code>getText</code> method works, but I can not update value. Code below is base on tutorial from <a href="https://hazelcast.com/blog/spring-boot/" rel="nofollow noreferrer">Hazelcast</a>.</p>
  
  <pre><code>@Service
  public class SlowService {
  
      String text = "Initial value";
  
      @Cacheable("text")
      public String getText() {
          try {
              TimeUnit.SECONDS.sleep(2);
          } catch (InterruptedException e) {
              e.printStackTrace();
          }
          return text;
      }
  
      @CachePut(value = "text", key = "#newText + 1")
      public String setText(String newText) {
          text = newText;
          return text;
      }
  }
  </code></pre>
  
  <p>How to improve code above to make <code>@CachePut</code> annotation work?</p>
  
  <p>EDIT:
  Tried adding same keys:</p>
  
  <pre><code>@Cacheable(value = "text", key = "#someKey")
      public String getText() {
          try {
              TimeUnit.SECONDS.sleep(2);
          } catch (InterruptedException e) {
              e.printStackTrace();
          }
          return text;
      }
  
      @CachePut(key = "#someKey")
      public String setText(String newText) {
          text = newText;
          return text;
      }
  </code></pre>
  
  <p>But getting:</p>
  
  <blockquote>
    <p>java.lang.IllegalArgumentException: Null key returned for cache
    operation (maybe you are using named params on classes without debug
    info?) Builder[public java.lang.String
    com.example.demo.SlowService.getText()] caches=[text] | key='#someKey'
    | keyGenerator='' | cacheManager='' | cacheResolver='' | condition=''
    | unless='' | sync='false'</p>
  </blockquote>