我有一个接口的抽象类来向后兼容并减少冗余。
abstract class EventHandlerAdapter implements EventHandler;
class ImplClass extends EventHandlerAdapter;
class Impl2Class extends EventHandlerAdapter;
对于仅从抽象类继承的任何 impl 类,我有事务的 AOP 设置。
<aop:config proxy-target-class="true">
<aop:pointcut id="EventTXOperation" expression="execution(* EventHandlerAdapter.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="EventTXOperation"/>
</aop:config>
当我尝试在 Impl2Class 中引用 ImplClass 时,即使我指定了 proxy-target-class="true",似乎 spring 将始终使用原始接口 EventHandler 并且我无法转换为抽象类或具体 impl。这是带有代理目标类的spring AOP的正常行为吗?我看到我可以深入使用 Advisor 类来获取自动代理 bean 的目标类,但它似乎是侵入性的。那么我有什么更好的选择呢?