本文共 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/