一、引入
我们构建系统的目的是解决业务问题,现在却要分心做很多事情,比如日志,事务控制,异常处理等,怎样才能“专心”做事呢?
AOP的目标:让我们“专心”做事。
二、AOP的原理
将复杂的需求分解出不同方面,将公共功能集中解决。
采用代理机制组装起来运行,在不改变原程序的基础上对代码进行增强处理,增加新的功能。
通过代理对象来调用原对象的方法,代理对象前后都可以插入代码,这些代码就是增强代码。
所谓面向切面编程,是一种通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态添加功能的技术。
分离横切关注点和核心关注点。
三、术语
增强处理(Advice)
前置增强
后置增强
环绕增强,异常抛出增强,最终增强等类型。
切入点(Pointcut)
连接点(Join Point)
切面(Aspect)
目标对象(Target object)
AOP代理(AOP proxy)
织入(Weaving)