标签:join point advice Pointcut 3.2 关键 Aspect springAOP Advice
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注
[查看视频教程]
[1]Aspect(切面)
Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。
[2]Joint point(连接点)
表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。
[3]Pointcut(切点)
表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。
[4]Target(目标对象)
织入 Advice 的目标对象.。
[5]Weaving(织入)
将 Aspect 和其他对象连接起来, 并创建 Adviced object 的过程
看了上面的例子可能还是有点蒙,再看例子:我们要给所有的添加业务加入权限校验的业务处理。那么看下面的图理解上面的概念:
图有点乱,听我一个一个解释:
① Aspect中包含了 Pointcut和Advice。 Pointcut就是一个规定,或者说描述,说明我们要织入切面的具体规定。 Advice就是我们要执行的切面业务。
②Join point,在我们上面的例子中,J oint point就是我们要执行的所有的业务方法,也就是上面的两个业务对象中的四个方法。
③Target(目标对象),这个就不用多解释了。
④ 织入器,织入器会根据Pointcut的描述从Joint point中找到符合要求的织入点,将Advice织入到对应的位置。
说道这里希望你对上面的几个概念有所了解。
接下来我们来看看,Advice的几个类型:
[1] before advice(前置通知)
在 join point 前被执行的 advice. 虽然 before advice 是在 join point 前被执行, 但是它并不能够阻止 join point 的执行, 除非发生了异常(即我们在 before advice 代码中, 不能人为地决定是否继续执行 join point 中的代码)
[2]after return advice (后置通知)
在一个 join point 正常返回后执行的 advice
[3]after throwing advice(异常通知)
当一个 join point 抛出异常后执行的 advice
[4]after(final) advice(最终通知)
无论一个 join point 是正常退出还是发生了异常, 都会被执行的 advice.
[5]around advice(环绕通知)
在 join point 前和 joint point 退出后都执行的 advice. 这个是最常用的 advice.
标签:join,point,advice,Pointcut,3.2,关键,Aspect,springAOP,Advice 来源: https://www.cnblogs.com/jiafa/p/13812725.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。