AOP 主要应用在具有横切逻辑的应用场合:
性能测试 访问控制 事务管理 日志记录
OOP: 面向对象编程
AOP:(AspectOriented Programming)面向方面编程,不是来取代 OOP,是对 OOP 的一个补充。
AOP 的术语:
连接点:joinpoint:在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。在 Spring AOP 中,一个连接点总是 表示一个方法的执行。。Spring只支持 方法的连接点,如支持方法的执行前、后及异常抛出等。相当于编程过程中对某一类的方法进行操作,某一类方法怎么查找,可以找出这些方法的共同特点作为我们的连接点,如:findUser(),findNews(),del()等就是连接点,通俗的说,连接点可以是类里面的所有方法。
切点:pointcut:特定的方法,如 find开头的方法,以数据库操作来说,连接点,相当于 select * from user;切点相当于 select * from user where uname like ‘张*’。
增强:Advice:给目标连接点增加功能。有beforeAdvice,afterReturingAdvice,aroundAdvice, ThrowsAdvice
目标对象:target,要映入增强的类,如开发过程中,我们要对所有的 Services 的方法添加事务,目标对象时:service 类。
引介:Introduction:给类添加属性和方法---而不能修改该类的代码。
织入:Weaving:织入就是将增强织入到目标类具体的连接点上的过程。
代理:Proxy:给一个类进行增强后,出现一个新的功能更强大的类。
切面:Aspect:由切点和引介组成。