Spring知识(三)之AOP

面向切面的编程:切面可以帮助我们模块化横切关注点。所谓横切关注点,可以被描述为影响应用多处的功能。例如,安全就是一个横切的关注点,应用中的许多方法都会涉及到安全规则。以下图直观呈现横切关注点的概念:Spring知识(三)之AOP

AOP的术语:

Spring知识(三)之AOP

切面(Aspect) : 就是交叉在各个业务逻辑中的系统服务,类似于安全验证,事务处理,日志记录

通知(Adivce) : 切面的工作被称为通知,就是切面的实现  

连接点(JoinPoint) : 在应用中可能有很多的时机应用通知,这些时机被称为连接点。连接点是在应用执行过程中能够插入切面的一                                 个点。就是理论上可以被切面织入的所有方法。比如有一个StudentServiceImpl类里面的所有方法,里面的方                                   法可能有add()方法、 update()方法等等 

切入点(PointCut) : 就是实际上被切面织入的方法。比如事务控制 add update del 

织入(weaving) : 就是讲切面的实现插入到目标方法的过程  

目标对象(target) : 就是包含了被切面织入的方法的类 ---StudentServiceImpl

顾问(Advisor) : 其实就是通知的一个封装和延伸 可以将通知以更复杂的方式织入到某些方法中

Spring切面5种类型的通知:

前置通知(Before) : 在目标方法调用之前调用通知功能

后置通知(After) : 在目标方法完成之后调用通知功能

返回通知(After-returning) : 在目标方法成功执行之后调用通知

异常通知(After-throwing) : 在目标方法抛出异常后调用通知

环绕通知(Around) : 通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为