面向切面的基本概念

在软件开发中,散布于应用中多处的功能被横切关注点。(cross-cutting  concern)

从概念上这些横切关注点,和应用的业务逻辑是相互分离的,但是实际中这些横切关注点却是直接嵌套在业务逻辑层中的。面向切面编程就是为了让这些关注点,和业务逻辑层分离。

DI是为了实现应用对象之间的解耦。

横切关注点可以被模块化为特殊的类,这些类被称为切面(aspect)

切面的工作被称为通知

通知:通知定义了切面是什么以及何时使用。

连接点:在应用执行过程中能够切入切面的一个点。

切点:切点定义会匹配通知所要织入的一个和多个连接点(定义了切面在何处执行)

切点和通知定义了切面的全部内容。

引入(introduction):无需修改现用的类,可以为类添加新的方法和属性。

织入(Weaving)是把切面应用到目标对象并创建新的代理对象的过程。

连接点是通知可以应用的所有点,切点是通知被应用的具体位置(哪些连接点)。

换言之:切点定义了哪些具体的连接点会得到通知。