title: @AfterReturning(pointcut) vs @AfterReturning(value)
body: <p>What is the difference between <code>@AfterReturning(pointcut)</code> and <code>@AfterReturning(value)</code></p>
  
  <pre><code>@AfterReturning(pointcut = "execution(* my.java.model.Triangle.myTest*(param))", returning = "returnedString", argNames = "param,returnedString")
      public void afterReturningAdvice(String param, String returnedString) {
        System.out.println("Executing after function advice that accepts the input " + param + " and returns " + returnedString);
      }
  </code></pre>
  
  <p>The above method results in <code>Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error at ::0 name binding only allowed in target, this, and args pcds</code>.</p>
  
  <p>It works fine after replacing the above code with </p>
  
  <pre><code>@AfterReturning(value = "(* my.java.model.Triangle.myTest*(*))  &amp;&amp; args(param)", returning = "returnedString", argNames = "param,returnedString")
    public void afterReturningAdvice(String param, String returnedString) {
      System.out.println("Executing after function advice that accepts the input " + param + " and returns " + returnedString);
    }
  </code></pre>
  
  <p>What is the difference between <strong>value and pointcut</strong></p>