博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringAOP
阅读量:4212 次
发布时间:2019-05-26

本文共 809 字,大约阅读时间需要 2 分钟。

 

spring aop

 

Aspect:

切面:
     举个形象的例子,就像我们在高速上卡车,沿着笔直的线路在走,入口处我们要
经过一个收费站横着将我们的道路挡住,出口处也有一个收费站横着将我们的道路挡住,
在入口处我们要交费,否则不允许进入,在出口处我们也要交费否则不允许出去,那么
这两个收费站就是我们的切面。就像我们的程序执行一样,在一条线上走的时候,中间就会
切入各种的业务,我们称这样的业务为切面。
那么切面就是一个业务类,在我们执行一个事务时,它会切入进来或者前面或者后面或者出现某种异常

 

 

Advice:

定义我们在何时切入,还是举走高速的例子:
       当我们驾车时,从北京上高速,那么北京交通局就会考虑在车辆进入的时候收费,
到达河北后,我们要出高速,那么河北交通局就会考虑在车里出去的时候收费,当我们走到途中
感觉车上油不多了,那么加油站就会切入。就像我们的程序,当我调用Action时,我可以在其进入
之前就切入,执行一些逻辑,当我们调用service方式时,我们可以在其进入之前进行切入,当然在
这个过程中,如果我们发生了异常,那么异常处理的Ascpet就可以切入。
总的来说我们包括三方面的切入,
1、在之前切入
2、在之后切入
3、在出现异常时切入
在Spring的Advice方式中只支持方法上的切入。

 

 

 

Pointcut

定义我们在那些规则上切入,还是走高速的例子:
   1、我们可以对所有军车不收费进高速
   2、对普通车收费进高速
   3、对所有车收费进高速
换成我们的程序就是,例如我们可以只对,添加的方法切入一些Aspect
也可以对所有的方法切入Aspect。

 

 

Weave

这个单词叫织入,其实上面所说的切入就是织入

 

 

 

JoinPoint

定义我们的织入点,还是高速:
  高速上所有运行的车都有可能成为织入点,只要他们满足我们的

Pointcut定义规则,放到我们程序中就是一个个的方法,具体的方法。

如下图所示:

转载地址:http://qnzmi.baihongyu.com/

你可能感兴趣的文章
【一天一道LeetCode】#60. Permutation Sequence.
查看>>
【一天一道LeetCode】#113. Path Sum II
查看>>
【一天一道LeetCode】#114. Flatten Binary Tree to Linked List
查看>>
【unix网络编程第三版】阅读笔记(二):套接字编程简介
查看>>
【一天一道LeetCode】#115. Distinct Subsequences
查看>>
【一天一道LeetCode】#116. Populating Next Right Pointers in Each Node
查看>>
【一天一道LeetCode】#117. Populating Next Right Pointers in Each Node II
查看>>
【一天一道LeetCode】#118. Pascal's Triangle
查看>>
同步与异步的区别
查看>>
IT行业--简历模板及就业秘籍
查看>>
JNI简介及实例
查看>>
JAVA实现文件树
查看>>
linux -8 Linux磁盘与文件系统的管理
查看>>
linux 9 -文件系统的压缩与打包 -dump
查看>>
PHP在变量前面加&是什么意思?
查看>>
ebay api - GetUserDisputes 函数
查看>>
ebay api GetMyMessages 函数
查看>>
php加速器 - zendopcache
查看>>
手动12 - 安装php加速器 Zend OPcache
查看>>
set theme -yii2
查看>>