软件开发中分布在应用中多处的功能被称为横切关注点。
将这些横切关注点与业务逻辑相分离正是面向切面编程所解决的。
依赖注入有助于应用对象之间的解耦,而AOP可以实现横切关注点与它们所影响的对象之间的解耦。
横切关注点可以被模块化为特殊的类,这些类被称为切面。
描述AOP的术语:通知(Advice) 切点(pointcut) 连接(joint)
切面的工作被称为通知,通知除了描述切面要完成的工作,还描述了切面何时执行的问题。
连接点是应用执行过程中能够插入切面的一个点,这个点可以是调用方法时 抛出异常时 甚至修改一个字段时。
切点(pointcut)定义了切面会在何处接入。切点的定义会匹配一个或多个连接点,通常我们会使用明确的类和方法名称来指定这些切点,或者利用正则表达式定义匹配的类和方法名称模式来指定这些切点。有些AOP框架允许我们创建动态的切点,根据运行时方法的参数来决定是否应用通知。
切面是通知和切点的结合。他们共同定义了切面的全部内容——切面是什么,何时,何处完成其功能。
引入允许我们向现有的类中添加新方法或属性。
织入是将切面应用到目标对象来创建新的代理对象的过程。
原文:http://www.cnblogs.com/focusahaha/p/4358522.html