title: AOP with custom annotation in Super class doesn't work
body: <p>custom annotation</p>
  
  <pre><code>@Target(ElementType.METHOD)
  @Retention(RetentionPolicy.RUNTIME)
  public @interface CustomAnnotation {
  }
  </code></pre>
  
  <p>custom annotation handler</p>
  
  <pre><code>@Aspect
  public class TestAspectHandler {
      @Around("execution(@com.test.project.annotaion.CustomAnnotation * *(..)) &amp;&amp; @annotation(customAnnotation)")
      public Object testAnnotation(ProceedingJoinPoint joinPoint, CustomAnnotation customAnnotation) throws Throwable {
          System.out.println("TEST");
          return result;
      }
  }
  </code></pre>
  
  <p>super class</p>
  
  <pre><code>public class AbstractDAO {
       @CustomAnnotation
       protected int selectOne(Object params){
            // .... something
       }
  }
  </code></pre>
  
  <p>sub class</p>
  
  <pre><code>public class SubDAO extends AbstractDAO {
      public int selectSub(Object params) {
           return selectOne(params);
      }
  }
  </code></pre>
  
  <p>subclass <code>SubDAO</code> call SuperClass method <code>selectOne</code> but in <code>TestAspectHandler.class</code> doesn't call <code>testAnnotation(...)</code></p>
  
  <p>when i move <code>@CustomAnnotation</code> to subclass <code>selectSub(..)</code> method AspectHandler can get <code>joinPoint</code></p>
  
  <p>how to work with Custom annotation in super class protected method?</p>
  
  <hr>
  
  <p><code>added</code></p>
  
  <p>change <code>TestAspectHandler.testAnnotation(...) method</code></p>
  
  <pre><code>@Around("execution(* *(..)) &amp;&amp; @annotation(customAnnotation)")
  public Object testAnnotation(ProceedingJoinPoint joinPoint, CustomAnnotation customAnnotation) throws Throwable {
              System.out.println("TEST");
              return result;
  }
  </code></pre>
  
  <p>but still doesn't work</p>
  
  <p>so i chnage my <code>SubDAO</code> like under code</p>
  
  <pre><code>public class SubDAO extends AbstractDAO {
      @Autowired
      private AbstractDAO abstractDAO;
      public int selectSub(Object params) {
           return abstractDAO.selectOne(params);
      }
  }
  </code></pre>
  
  <p>this is not the perfect solution but it work</p>
  
  <hr>
  
  <ul>
  <li>case 1 : call Super class method from subclass method doesn't work</li>
  <li>case 2 : make Super class instance and call from instance work</li>
  </ul>