私はそれを拡張するいくつかの派生クラスを持つ基本クラスを持っています。 Spring AOP Aspectをスーパークラスのみに制限して、派生クラスではなくAOP Proxyを作成するようにします。Spring AOP - 派生クラスがターゲットにされないようにする方法
@Pointcut("execution(* com.blah.platform.persistence.generic.GenericDaoImpl.*(..))")
public void withinGenericDao() {}
をGenericDaoImplスーパークラスである:
私は次のようにポイントカットを定義しようとしました。
私はまだプロキシが、同様の派生クラス用に生成されていることがわかります。
2011-11-24 18:00:28,616 ContainerBackgroundProcessor[StandardEngine[Catalina]] DEBUG [JdkDynamicAopProxy] Creating JDK dynamic proxy: target source is SingletonTargetSource for target object [[email protected]]
2011-11-24 18:00:28,638 ContainerBackgroundProcessor[StandardEngine[Catalina]] DEBUG [JdkDynamicAopProxy] Creating JDK dynamic proxy: target source is SingletonTargetSource for target object [[email protected]]
2011-11-24 18:00:28,645 ContainerBackgroundProcessor[StandardEngine[Catalina]] DEBUG [JdkDynamicAopProxy] Creating JDK dynamic proxy: target source is SingletonTargetSource for target object [[email protected]]
2011-11-24 18:00:28,953 ContainerBackgroundProcessor[StandardEngine[Catalina]] DEBUG [JdkDynamicAopProxy] Creating JDK dynamic proxy: target source is SingletonTargetSource for target object [[email protected]]
2011-11-24 18:00:29,030 ContainerBackgroundProcessor[StandardEngine[Catalina]] DEBUG [JdkDynamicAopProxy] Creating JDK dynamic proxy: target source is SingletonTargetSource for target object [[email protected]]
私は次のようにポイントカットが定義されている場合にのみ起こるべきであると思うだろう:
execution(public * com.mycompany.myservice.MyService+.*(..))
どれでもアイデア?
はい、これは動作するようです。どうもありがとう! – vladiu