I have faced same problem. Configuration is like:
Code:
<aop:after-returning method="afterReturningMethod" pointcut="execution(* SomeInterface.*(..))"/>
When toString() method is executed on bean instance then pointcut is matched! But this is true only for lowest-level interface. In the case I use some descendant interface
Code:
interface SomeDescendantInterface extends SomeInterface
and change config to
Code:
<aop:after-returning method="afterReturningMethod" pointcut="execution(* SomeDescendantInterface.*(..))"/>
problem is disappearing!