Spring aspect call on custom annotation on interface method
<p>I have this interface:</p>

<pre><code>public interface FakeTemplate {

    @CustomAnnotation
    void foo() {

    }

}
</code></pre>

<p>And this implementation of the interface:</p>

<pre><code>@Component
public FakeImpl implements FakeTemplate {

    @Override
    public void foo() {
        //Do Stuff
    }

}
</code></pre>

<p>And this aspect:</p>

<pre><code>@Aspect
@Component
public class CustomAspect {

    @Before(value = "@annotation(com.fake.CustomAnnotation)")
    public void doStuffBefore(JoinPoint joinPoint} {

    }

}
</code></pre>

<p>I'm using spring with AspectJ enabled using: <code>@EnableAspectJAutoProxy(proxyTargetClass = true)</code></p>

<p>My issue is that the aspect <code>doStuffBefore</code> method is not being called before the execution of FakeImpl's <code>foo()</code> method.  It Does work when I put the <code>@CustomAnnotation</code> on <code>FakeImpl</code> instead of <code>FakeTemplate</code>, but I'd much prefer to put the annotation on <code>FakeTemplate</code> as it's in a separate API package and I've kind of delegated it as the place where I put all my annotations.  </p>

<p>I'd also like to ensure that the <code>CustomAnnotation</code> is called on every class that implements <code>FakeTemplate</code> without remembering to put the annotation on all the implementation classes themselves.</p>

<p>Is there any way to get the advice to be called if the annotation is only on the interface class?  </p>