0
我按照教程学习Spring AOP。Spring中的“执行”AOP
在章Spring AOP capabilities and goals,它说:
Spring目前仅支持使用方法执行(1)连接点
但在章aop-pointcuts-designators,它支持下面的切入点表达式:
execution(2)
within
...
(1)和(2)两种执行标记的不同含义是什么?
我按照教程学习Spring AOP。Spring中的“执行”AOP
在章Spring AOP capabilities and goals,它说:
Spring目前仅支持使用方法执行(1)连接点
但在章aop-pointcuts-designators,它支持下面的切入点表达式:
execution(2)
within
...
(1)和(2)两种执行标记的不同含义是什么?
这句话意味着Spring只能拦截方法调用。 Aspect oriented programming通常具有更广的范围。 AOP连接点可以是任何一段代码,方法调用,抛出异常,捕获异常,变量赋值等。然而Spring的AOP受到Java语言及其特性的限制。因此,它只能处理方法调用连接点。继续阅读Spring如何使用代理实现AOP功能。
上面的报价与切入点的类型完全无关。
的execution
(2)是pointcut designator.
执行 - 匹配方法执行的连接点,这是Spring AOP的工作
当你将使用 主要切入点指示符事实上我知道执行(1)意味着什么,还有其他类型的连接点,比如'field'等,spring只是支持'方法执行'。但令我困惑的是切入点表达式中的执行(2),这是什么意思? – hguser
@hguser请参阅我的编辑。那是你需要的吗? –
切入点指示符包含“execution,within,this ....”,因为Spring只支持'execution',所以我不确定指定符'execution'是否有意义,并且在内部执行'execution'这个......'会使它看起来像'内部,这个......'不用于方法执行(但事实上,它们仍然只支持方法执行,不是吗?) – hguser