`
nenty
  • 浏览: 109538 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

AOP的一些基本概念

阅读更多
AOP的基本概念
切面(Aspect): 一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应用中一个关于横切关注点的很好的例子。 在Spring AOP中,切面可以使用通用类(基于模式的风格) 或者在普通类中以 @Aspect 注解(@AspectJ风格)来实现。
连接点(Joinpoint): 在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。 在Spring AOP中,一个连接点 总是 代表一个方法的执行。 通过声明一个org.aspectj.lang.JoinPoint类型的参数可以使通知(Advice)的主体部分获得连接点信息。
通知(Advice): 在切面的某个特定的连接点(Joinpoint)上执行的动作。通知有各种类型,其中包括“around”、“before”和“after”等通知。 通知的类型将在后面部分进行讨论。许多AOP框架,包括Spring,都是以拦截器做通知模型, 并维护一个以连接点为中心的拦截器链。
切入点(Pointcut): 匹配连接点(Joinpoint)的断言。通知和一个切入点表达式关联,并在满足这个切入点的连接点上运行(例如,当执行某个特定名称的方法时)。 切入点表达式如何和连接点匹配是AOP的核心:Spring缺省使用AspectJ切入点语法。
引入(Introduction): (也被称为内部类型声明(inter-type declaration))。声明额外的方法或者某个类型的字段。 Spring允许引入新的接口(以及一个对应的实现)到任何被代理的对象。 例如,你可以使用一个引入来使bean实现 IsModified 接口,以便简化缓存机制。
目标对象(Target Object): 被一个或者多个切面(aspect)所通知(advise)的对象。也有人把它叫做 被通知(advised) 对象。 既然Spring AOP是通过运行时代理实现的,这个对象永远是一个 被代理(proxied) 对象。
AOP代理(AOP Proxy): AOP框架创建的对象,用来实现切面契约(aspect contract)(包括通知方法执行等功能)。 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。 注意:Spring 2.0最新引入的基于模式(schema-based)风格和@AspectJ注解风格的切面声明,对于使用这些风格的用户来说,代理的创建是透明的。
织入(Weaving): 把切面(aspect)连接到其它的应用程序类型或者对象上,并创建一个被通知(advised)的对象。 这些可以在编译时(例如使用AspectJ编译器),类加载时和运行时完成。 Spring和其他纯Java AOP框架一样,在运行时完成织入。
通知的类型:
前置通知(Before advice): 在某连接点(join point)之前执行的通知,但这个通知不能阻止连接点前的执行(除非它抛出一个异常)。
• 返回后通知(After returning advice): 在某连接点(join point)正常完成后执行的通知:例如,一个方法没有抛出任何异常,正常返回。
抛出异常后通知(After throwing advice): 在方法抛出异常退出时执行的通知。
后通知(After (finally) advice): 当某连接点退出的时候执行的通知(不论是正常返回还是异常退出)。
环绕通知(Around Advice): 包围一个连接点(join point)的通知,如方法调用。这是最强大的一种通知类型。 环绕通知可以在方法调用前后完成自定义的行为。它也会选择是否继续执行连接点或直接返回它们自己的返回值或抛出异常来结束执行。
分享到:
评论

相关推荐

    面向方面编程的Aop介绍

    本教程介绍 AOP 及其基本概念。AOP 及其相关的工具使您可以将基本横切关注点(如日志记录和安全)的代码,与程序的核心应用逻辑相分离。AOP 通过使代码更具有可读性、更不容易出错以及更容易设计和维护,改善了代码...

    Spring AOP详细介绍.docx

    一 AOP的基本概念 (1)Aspect(切面):通常是一个类,里面可以定义切入点和通知 (2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用 (3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after...

    实验2 Spring AOP源码

    1、 理解Spring AOP原理和基本概念; 2、掌握基于XML/注解方式的AOP编程; 二:实验内容 1、 定义交易接口: public interface Transaction{ public void income(float amount);//收入 public void expenditure...

    新型软件开发方法AOP的研究.pdf

    本文首先介绍了AOP技术的产生背景和基本概念,提出了AOP概念模型和特 性模型,并且在特性模型中归纳了AOP编织的四个关键特性,然后据此对当前的典型AOP实现技术及 其优点进行了分析,最后展望了AOP技术未来的发展...

    spring介绍ppt 介绍spring的基本概念和使用

    spring介绍ppt 介绍spring的基本概念和使用,从ioc和aop讲起,对想快速了解spring的人有很大帮助

    论文研究-面向方面软件开发研究.pdf

    其次,阐述了AOP的基本概念,并结合AspectC 演示了如何进行面向方面的编程;再次,描述了如何对UML扩展以支持对方面建模;然后介绍了面向方面软件开发在实时系统中的应用;最后给出了结论和未来的主要工作。

    weaverl:Erlang 遇到 AOP

    基本概念 待定 入门 待定 免责声明:这个项目是作为一个练习开始的,目的是了解更多关于 Erlang/OTP 的解析转换。 不要期望一个成熟的、没有错误的工具可以集成到生产软件中,而是一个实验性的软件,你可以用它来...

    java视频教程:spring框架精讲附加实战项目练习

    主要讲Spring的核心概念和基本使用。涉及IoC、DI、AOP、JdbcTemplate和事务管理等核心概念。同时讲解了xml和注解两种方式使用Spring的示例。通过Spring的入门程序介绍了Spring的 IoC 和 DI 的概念,介绍了Spring的...

    论文研究-面向方面的权限管理研究 .pdf

    面向方面的权限管理研究,陈玉良,孟祥武,本文介绍了基于角色的访问控制理论RBAC和面向方面编程AOP的基本概念,并将二者结合用于系统权限管理。实践表明,该技术使业务逻辑��

    Spring概述

    Spring的一些基本概念的介绍,例如IoC,AOP等,并介绍了这么使用Spring

    JAVA面试常见问题整理

    最后,文章简要概述了Spring框架的基本概念和作用,包括IOC、AOP、Bean的作用域等内容。同时,还涉及了事务处理的并发问题、Spring事务的实现方式和隔离级别等相关知识。 总之,本文为读者提供了一个关于Java面试...

    java中的0 can‘t find referenced pointcut runTim

    Aop的一些常用基本概念 Advice(通知、切面): 某个连接点所采用的处理逻辑,也就是向连接点注入的代码, AOP在特定的切入点上执行的增强处理。 @Before: 标识一个前置增强方法,相当于BeforeAdvice的功能. @...

    面向方面编程和AspectJ一.pdf

    面向方面编程(AOP)的基本概念及其实现技AspectJ。用一个完整的、可运行的实例,详细说明AOP方法厦其具体应用。

    面向方面软件开发研究* (2005年)

    其次,阐述了AOP 的基本概念,并结合Aspect C ++ 演示了如何进行面向方面的编程;再次,描述了如何对UML 扩展以支持对方面建模;然后介绍了面向方面软件开发在实时系统中的应用;最后给出了结论和未来的主要工作。

    基于javaWeb实现计算机配件报价系统项目设计源码分享

    (1)基本概念 Spring是一个开源开发框架,是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。 spring主要用来开发java应用,构建J2EE平台的web应用。其核心就是提供一种新的机制管理业务对象及其依赖关系 ...

    基于javaWeb实现计算机配件报价系统项目设计源码

    (1)基本概念 Spring是一个开源开发框架,是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。 spring主要用来开发java应用,构建J2EE平台的web应用。其核心就是提供一种新的机制管理业务对象及其依赖关系 ...

    千锋JavaEE精讲之Spring框架实战教程

    涉及IoC、DI、AOP、JdbcTemplate和事务管理等核心概念。同时讲解了xml和注解两种方式使用Spring的示例。  通过Spring的入门程序介绍了Spring的IoC和DI的概念,介绍了Spring的基本模块。详细介绍了对象创建的...

    Spring.xmind

    Spring思维脑图详细介绍了spring的架构:ioc、aop、事务、基本概念。

    中软spring培训讲义

    Spring 基本概念(IOC);AOP;Spring 整合Struts,Hibernate

    2023Java高频面试题

    多线程编程:线程的基本概念、线程同步、线程安全、死锁等问题。 JDBC:Java与数据库的交互,连接池的使用等。 Spring框架:Spring框架的基础概念、IOC容器、AOP等。 Hibernate框架:Hibernate框架的基础概念、ORM...

Global site tag (gtag.js) - Google Analytics