要理解AOP 就需要知道动态代理
使用一个代理将对象包装起来,然后用该代理对象取代原始对象【为什么要取代原始对象?】,任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法调用转到原始对象。
>>> AOP (Aspect Oriented Programming )面向切面编程,是一种新的方法,是对面向对象的补充。
>>> AOP的主要变成对象就是切面。而且面模块化就是横切关注点
AOP术语
切面:横切关注点(跨越应用程序多个模块的功能)被模块化的对象
通知:切面必须完成的工作
代理:项目标对象应用通知之后创建的对象
连接点(JoinPoint):程序执行的某个特定位置,如某个方法调用前,调用后,方法抛出异常,例如add()调用前的为一个连接点,【此时可以使用前置通知】
切点(point):每个类都拥有多个连接点,例如在计算器(Calctor)接口中每个方法都是连接点。连接点是程序存类中在客观存在的事务。AOP通过切点定位到特定的连接点。
AOP的好处:
每一个事务逻辑处于一个位置,代码不分散,便于维护和升级
业务模块简介,含核心业务代码