在面向方面的编程中,连接点的确切位置是

时间:2016-09-29 06:35:22

标签: aop aspectj spring-aop

我正在经历spring documentation,这就是关于加入点的说法

“加入点:程序执行期间的一个点,例如方法的执行或异常的处理。在Spring AOP中,连接点总是表示方法执行。”

这也是文件中关于“在建议之前”的说法..

“在建议之前:在连接点之前执行但不能阻止执行流程进入连接点的建议(除非它引发异常)。”

当他们说,之前的建议在一个连接点之前执行,那里确切地说是给定方法的那个点。让我们说我们有以下方法,假设它将位于我们所在的地方是正确的在方法中包含greater than > 符号?

public void Calculate()
{
     >
     // some logic
}

2 个答案:

答案 0 :(得分:1)

对于Spring AOP(基于代理的框架),它更像是:

class MyClass implements MyInterface {
    public void doSomething() {}
}
// Dynamic proxy created during runtime
class ProxyXY extends MyClass implements MyInterface {
    public void before_doSomething() {
        // Do whatever the AOP advice says and then...
        doSomething();
    }
}

这实际上只是示意图和简化,但我想你明白了。在AspectJ中,它是完全不同的,因为没有涉及代理,字节码直接生成到目标类中。

答案 1 :(得分:-1)

Join Point基本上是应用程序中的程序点,它将应用程序的业务逻辑与集中的AOP问题联系起来。 Spring仅支持方法执行作为Join点,即在业务逻辑中执行方法(action)之前或之后,我们可以根据需要加入到关注点。 阅读本文,了解Spring中AOP的要点。

http://codemodeweb.blogspot.in/2018/03/spring-aop-and-aspectj-framework.html