面向切面的基本概念

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

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

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

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

切面的工作被称为通知

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

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

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

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

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

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

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

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

时间: 2024-10-12 20:39:50

面向切面的基本概念的相关文章

Spring-05 -AOP [面向切面编程] -Schema-based 实现aop的步骤

一.AOP [知识点详解] AOP:中文名称面向切面编程 英文名称:(Aspect Oriented Programming) 正常程序执行流程都是纵向执行流程 3.1 又叫面向切面编程,在原有纵向执行流程中添加横切面 3.2 不需要修改原有程序代码 3.2.1 高扩展性 3.2.2 原有功能相当于释放了部分逻辑.让职责更加明确. 面向切面编程是什么? 4.1 在程序原有纵向执行流程中,针对某一个或某一些方法添加通知,形成横切面过程就叫做面向切面编程. 常用概念 5.1 原有功能: 切点, po

面向切面编程概念

面向切面编程术语有: 通知:描述了切面要处理的内容和什么时候去处理. 链接点:应用中的一个方法.异常.或修改某一个字段这些行为都可被看做是链接点. 切点:描述了哪些连接点需要被切入通知. 切面:通知和切点的组合这就是切面(也就是何处何时完成某功能). 引入:可以在无需修改现有的类的情况下,让它们具有新的行为和状态(向现有的类添加新的方法或属性),当然这些新的方法或属性是定义在通知类中. 织入:是切面应用到目标对象并创建新的代理对象的过程,在目标对象的声明周期里有多个点可以进行织入:编译器(切面在

AOP(面向切面编程概念,本文为翻译)

AOP是什么 AOP为Aspect Oriented Programming的缩写.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. 详情请自行百度或者Google: AOP In  .Net 的应用   AOP的应用场景 AOP的最大优势是,你只需要担心方面在一个地方,编程一次和应用所需的所有地方.AOP有

Spring AOP(面向切面示例)

什么是AOP?基本概念切面(aspect):横切关注点被模块化的特殊对象.通知(advice):切面必须要完成的工作.切面中的每个方向称之为通知.通知是在切面对象中的.目标(target):被通知的对象.代理(proxy):向目标对象应用通知后创建的对象. 连接点(joinpoint):目标对象的程序执行的某个特定位置.如某个方法调用前,调用后的位置.包括两个信息:1.目标程序的哪个方法?2.方法执行 前还是执行后?切点(pointcut):每个类会有多个连接点,AOP通过切点定位到特定的边接点

Spring面向切面编程

  1.面向切面编程(AOP)的概念:把项目中需要在多处用到的功能,比如日志.安全和事物等集中到一个类中处理,而不用在每个需要用到该功能的地方显式调用.   2.术语解释:        横切关注点:分布应用于多处的功能        切面:横切关注点可以被模块化为一个类,这个类被称为一个切面        通知(advice):切面要完成的工作.Spring的通知有5种类型:before.after.after-returning.after-throwing和around这五种类型.    

Spring4面向切面AOP

AOP(Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的横向多模块统一控制的一种技术.AOP是OOP的补充,是spring框架中的一个重要内容.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率.AOP可以分为静态织入与动态织入,静态织入即在编译前将需织入内容写入目标模块中,这样成本非常高.动态织入则不需要改变目标模块.Spring框架实现了AOP,使用注解

[Spring实战系列](16)面向切面编程(AOP)概述

1. 简介 在软件中,有些行为对于大多数应用都是通用的.日志,安全和事务管理的确很重要,但他们是都是应用对象主动参与的行为呢?如果让应用对象只关注自己所针对的业务领域问题,而其他方面的问题由其他应用对象来处理,这样会不会更好? 在软件开发中,分布于应用中多处的功能被称为横切关注点.通常,这些横切关注点从概念上是与应用的业务逻辑相分离的(但是往往直接嵌入到应用的业务逻辑中).将这些横切关注点与业务逻辑相分离是面向切面编程索要解决的. 上图展示了一个被划分为模块的典型应用.每个模块的核心功能都是为特

Spring面向切面编程(AOP)

1 spring容器中bean特性 Spring容器的javabean对象默认是单例的. 通过在xml文件中,配置可以使用某些对象为多列. Spring容器中的javabean对象默认是立即加载(立即实例化:spring加载完成,立即创建对象) scope:属性 singleton:默认值为单例,默认也是立即加载,在加载完成spring容器的时候,bean对象已经创建完成 prototype:多例的,默认懒加载,spring容器加载完成的时候,不会创建bean的对象,只有从容器获得bean对象的

初识Aop(面向切面编程)

AOP面向方面/面向切面编程 AOP将分散在系统中的功能块放到一个地方- 切面 可以声明式的定义何时何地应用这些功能,而不是在需要新功能的地方修改代码 好处每个业务逻辑放在一个地方,不是分散到代码各个角落.业务模块只包含核心功能,辅助功能转到切面中,使其更加清晰.关注的是共同处理.通过spring配置把某个作用应用到多个点上.提高灵活性 重要术语切面(Aspect):就是你要实现的交叉功能---共通业务处理可以被切入到多个目标对象.并且多次使用连接点(Joinpoint):应用程序执行过程中插入