如何为具有共享接口的扩展类创建切入点或周围?

问题描述 投票:0回答:1

我有一个抽象服务类。

abstract class AbstractService<T> {
    public void saveNew(T entity) {
    }
}

还有另外两个抽象类,它们扩展了AbstractService并实现了共享接口。

abstract class MoreAbstractService2<T extends Some2>
        extends AbstractService<T>
        implements SharedInterface {
}
abstract class MoreAbstractService3<T extends Some3>
        extends AbstractService<T>
        implements SharedInterface {
}

现在,我要验证这两个扩展服务的entity方法上的saveNew(T)参数。

如何为以下条件定义@Pointcut和(或)@Around

  • 扩展了AbstractService
  • 实现SharedInterface接口
spring aspectj spring-aop
1个回答
0
投票

您可以在以下范围内使用:

 within(com.somepackage.Super+)

其中com.somepackage.Super是完全限定的基类名称,而+表示“所有子类”。其他切入点是

execution(* com.somepackage.Super+.*(..))
© www.soinside.com 2019 - 2024. All rights reserved.