Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅子类方法的Spring AOP切入点表达式_Spring_Spring Aop_Pointcut - Fatal编程技术网

仅子类方法的Spring AOP切入点表达式

仅子类方法的Spring AOP切入点表达式,spring,spring-aop,pointcut,Spring,Spring Aop,Pointcut,我有一个场景需要截取一些子类方法,但我找不到合适的切入点表达式来截取 我有一个面向客户端的界面InfoService,它有一个方法getClientDetails package sample; public interface InfoService { InfoVO getClientDetails(int id); } 实现类有一些嵌套方法,如get*Info() 当用户调用getClientDetails方法时,我想截取get*Info()方法。我可以很容易地截获getCli

我有一个场景需要截取一些子类方法,但我找不到合适的切入点表达式来截取

我有一个面向客户端的界面
InfoService
,它有一个方法
getClientDetails

package sample;

public interface InfoService {
    InfoVO getClientDetails(int id);
}
实现类有一些嵌套方法,如
get*Info()

当用户调用
getClientDetails
方法时,我想截取
get*Info()
方法。我可以很容易地截获
getClientDetails
,但似乎没有截获子类方法。我甚至试着用自定义注释来注释那些info方法,但没有成功。到目前为止,我提出了以下方面

<aop:aspect ref="infoAspect">
    <aop:pointcut expression="execution(* sample.InfoService+.*Info(..))"
        id="infoMethods" />
    <aop:around method="aroundAdviceForinfoMethods" pointcut-ref="infoMethods" />
</aop:aspect>

设置为true或false也没有帮助。 我知道AOP不能拦截私有子类方法,但这些是公共方法。甚至有可能做到这一点吗?非常感谢您的帮助


PS:所示示例用于演示。实际的实现是巨大的,因此将这些内部方法移动到另一个bean并调用将是不可行的。

这是一个经典的实现,已经在这里被问了几十次了。我想您还没有读过Spring手册中关于SpringAOP是基于代理的以及基于这个原因SpringAspects的信息。如果您真的需要AOP来处理自调用的方法(如果必要的话,甚至是私有的方法),那么就告别Spring AOP,向full(加载时编织)问好。

也已经阅读了这些文章。当时大多数人都只有几岁了,所以我希望春天在这几年里可能会有一些魔力;)在这种情况下,他们可能会更新手册,因为这将是一个重大的(破坏兼容性的)变化
<aop:aspect ref="infoAspect">
    <aop:pointcut expression="execution(* sample.InfoService+.*Info(..))"
        id="infoMethods" />
    <aop:around method="aroundAdviceForinfoMethods" pointcut-ref="infoMethods" />
</aop:aspect>