Answers:
将关注点视为功能组,例如日志记录,审核,安全性
这些功能在大多数代码中都存在过,但是它们并没有真正存在于我们的动物类->狗类中-它们是应该存在于许多类中的功能-它们是相互交叉的关注点。
一个连接点是在纵横码居然跑代码的地方。
一个切入点是怎么说的jointpoint运行什么代码。
编织 -是指编译器/系统采用您的常规代码并包括所有AOP代码以便触发正确的代码等时-可以认为这是额外的预编译步骤。
一个简单易懂的示例是:
请注意,不同的实现和AOP框架之间的术语略有不同。
每个定义都基于先前的定义。
在您的应用程序中到处(跨领域)都使您感到困扰(关注)的事情。例如日志或安全性
在现有代码之前,之后或两者之前(左右)自动添加的代码块
Application code
|
|
|
|
\|/
|
JoinPoint ----------->("before" aspect, on the way in) // just before your intercepted application code
Pointcut start--------> public String myMethod(params ...)
//your application code
Pointcut finish--------> return (foo)
JoinPoint ----------->("after" aspect, on the way out) // just after your intercepted application code
|
\|/
|
|
|
Application code
在代码执行中执行方面的一部分的地方。
方面“连接”切入点的点。在“之前” joinPoint中,您可以访问参数,在“之后” joinPoint中,您可以访问返回值。如果抛出异常,则可能需要“ try-catch-finally”来处理或重新抛出它。
在切入点周围添加方面的过程