可能不恰当的比喻:
国家要建一条新的地铁,在这个工程中要干一些跟修地铁关系不大的工作,比如说打扫卫生等等,所以要请一些外包公司在介入,把这些不痛不痒的活干完,大概就是这么个故事,下面开始XIA对应.
Aspect(切面):
外包公司,乱七八糟的活都是由它完成的。----自定义的类,里面写前置通知等的代码。
Joinpoint(连接点):
工程队要干活的某些步骤,如挖隧道等。------ 需要拦截的方法
Pointcut(切入点):
对要干过的某些步骤特征的描述 ------ 对那些joinpoin进行拦截的定义
Advice(通知):
在工程队队干某些特殊步骤时,之前要干什么,之后要干什么等。 ---通知分为前置通知,后置通知,异常通知,最终通知,环绕通知
Target(目标对象):
这个工程的诸多工程队 ------代理的目标对象
需要注意的通知类型:
环绕通知: 外包公司可以不执行工程队步骤的内容,自己干了工程队的活(具体情况自己脑补),结果自然是外包公司干完活的结果。-----环绕通知要注意的是方法的参数及抛出异常类型的固定写法(方法名可以是任意得),环绕通知的拦截处理代码起作用必须调用pjp.proceed方法。