title: @Cacheable with condition for method arguments
body: <p>I read from spring <code>@Cacheable</code> docs (<a href="https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/cache/annotation/Cacheable.html#condition--" rel="nofollow noreferrer">https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/cache/annotation/Cacheable.html#condition--</a>)
  that <code>condition</code> can specify conditions on method arguments using SpEL.</p>
  
  <p>I have been trying the same out but failing. Here is my method:</p>
  
  <pre><code>public static final String myStr = "4";
  @Cacheable(condition="#!req.id.equals("+myStr+")")
  public Response myCall(Request req){}
  </code></pre>
  
  <p>and here is my <code>Request</code> POJO:</p>
  
  <pre><code>public class Request{
   private String id;
  
   public String getId(){
    return this.id; 
   }
  
   public void setId(String id){
    this.id = id;
   }
  
  }
  </code></pre>
  
  <p>But it's failing with spring SpEL exceptions, saying that '!' is invalid. Can someone please help me out get the condition right?</p>