面向切面编程概念

面向切面编程术语有:

通知:描述了切面要处理的内容和什么时候去处理。

链接点:应用中的一个方法、异常、或修改某一个字段这些行为都可被看做是链接点。

切点:描述了哪些连接点需要被切入通知。

切面:通知和切点的组合这就是切面(也就是何处何时完成某功能)。

引入:可以在无需修改现有的类的情况下,让它们具有新的行为和状态(向现有的类添加新的方法或属性),当然这些新的方法或属性是定义在通知类中。

织入:是切面应用到目标对象并创建新的代理对象的过程,在目标对象的声明周期里有多个点可以进行织入:编译器(切面在目标类编译时被织入,需要AspectJ),类加载期(切面在目标类加载到JVM时被织入,需要AspectJ),运行期(切面在应用运行的某个时候被织入,需要springAOP,一般情况下在织入切面时,AOP容器会为目标对象动态地创建一个代理对象)。

总结:通知包含了需要用于多个应用对象的横切行为; 连接点是程序执行过程中能够应用通知的所有点; 切点定义了通知被应用的具体位置(在哪些连接点) 。 其中关键的概念是切点定义了哪些连接点会得到通知。

参考了《spring实战》第四版

时间: 2024-10-11 18:58:21

面向切面编程概念的相关文章

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

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

Spring 面向切面编程(AOP)

Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Control – IOC) 理解依赖注入(DI – Dependency Injection) Bean XML 配置(1)- 通过XML配置加载Bean Bean XML 配置(2)- Bean作用域与生命周期回调方法配置 Bean XML 配置(3)- 依赖注入配置 Bean XML 配置(

Spring面向切面编程

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

[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):应用程序执行过程中插入

Java实战之03Spring-03Spring的核心之AOP(Aspect Oriented Programming 面向切面编程)

三.Spring的核心之AOP(Aspect Oriented Programming 面向切面编程) 1.AOP概念及原理 1.1.什么是AOP OOP:Object Oriented Programming面向对象编程 AOP:Aspect Oriented Programming面向切面编程 1.2.代理 充分理解:间接 主要作用:拦截被代理对象执行的方法,同时对方法进行增强. 1.2.1.静态代理 特点:代理类是一个真实存在的类.装饰者模式就是静态代理的一种体现形式. 1.2.2.动态代

简单理解之面向切面编程(AOP)

在传统的编写业务逻辑处理代码时,我们通常会习惯性地做几件事情:日志记录.事务控制及权限控制等,然后才是编写核心的业务逻辑处理代码.当代码编写完成回头再看时,不禁发现,扬扬洒洒上百行代码中,真正用于核心业务逻辑处理才那么几行,如图6-4所示.方法复方法,类复类,就这样子带着无可奈何遗憾地度过了多少个春秋.这倒也罢,倘若到了项目的尾声,突然决定在权限控制上需要进行大的变动时,成千上万个方法又得一一"登门拜访",痛苦"雪上加霜". 如果能把图6-4中众多方法中的所有共有代

Python装饰器与面向切面编程

今天来讨论一下装饰器.装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用.概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能. 1. 装饰器入门 1.1. 需求是怎么来的? 装饰器的定义很是抽象,我们来看一个小例子. 1 2 3 4 def foo():     print 'in foo()' foo() 这是一个很无聊的函数没错