zoukankan      html  css  js  c++  java
  • Spring AOP

      Spring AOP是继Spring IoC之后的Spring框架 的又一大特性,它也是Spring框架的核心内容。AOP是一种思想,所有符合AOP思想的技术,都可以看做是AOP 的实现。AOP 是建立在Java代理机制之上,S骗人能够框架已经基本实心了AOP思想。在众多的AOP实现技术当中,Spring AOP做得最好,也是最成熟的。

      Spring AOP 会实现AOP联盟(Alliance)指定的接口规范。Spring AOP的接口都实现了AOP联盟定制标准化接口,这就意味着Spring AOP已经走向了标准化,它将发展的更快。AOP联盟由许多团体组成,这些团体致力于各个Java AOP子项目的开发,它们与Spring 有相同的信念:AOP使开发复杂的企业级应用变得简单,没落更清晰。同时它们也在很保守的地方为AOP 制定标准化的统一接口,使得不同的AOP 技术之间相互兼容。

      Spring AOP的实现是基于Java的代理机制,从JDK 1.3开始就支持代理机制,但是性能成为一个很大问题,为了解决JDK代理性能问题,出现了CGLIB代理机制,它可以生成字节码,所以它的性能会高于JDK代理。Spring支持者两种代理方式。但是随着JVM(Java虚拟机)性能的不断提高,者两种代理性能的差距会越来越小。先了解Spring AOP的一些术语,它们是构成Spring AOP的基本组成部分。

      切面(Aspect):是对象操作过程中的截面,想象一个平行四边形拦截了程序流程,Spring形象地把它叫做切面,所谓“面向切面编程”正式指的这个。实际上,“切面”是一段程序代码,这段代码将植入到程序流中。

      连接点(Join Point):对象操作过程中的某个阶段点,在程序流程上的任意一点,都可以是连接点。它实际上是对象的一个操作,例如,对象调用某个方法,读写对象的实例或是某个方法抛出了异常。

      切入点(Pointcut):切入点是连接点的集合,切面与程序流程的“交叉点”便是程序的切入点。确切的说,它是“切面注入”到程序中的位置。换句话说,“切面”是通过切入点被注入的。在程序中可以有很多个切入点。

      通知(Advice):通知是某个切入点被横切后,所采取的处理逻辑。也就是说,在“切入点”处拦截程序后,通过通知来执行切面。

      目标对象(Target):所有被通知的对象(也可以理解为被代理的对象)都是目标对象,目标对象被AOP锁关注,它的属性的改变会被关注,它行为的调用也会被关注,它的方法传参的变化仍然会被关注。AOP会注意目标对象的变动,随时准备向目标对象注入切面。

      织入(Weaving):织入是将切面功能应用到目标对象的过程。由代理工厂创建一个代理对象,这个代理可以为目标对象执行切面功能。AOP的织入方式有3种:编译时期(Compile time)织入、类加载时期(Classload time)织入、运行时(Runting)织入。Spring AOP一般多见于运行时织入。

      引入(Introduction):对一个已经编译完类(class),在运行时期,动态的项这个类中加载属性和方法。

  • 相关阅读:
    Asp.net弹出浏览器客户端确认对话框代码 Carlwave
    VS 2005 与SQL Server 2005整合优势在哪里?(from csdn.net) Carlwave
    如何让搜索引擎收录我的站点 Carlwave
    超强扩展性的DNNDotNetNuke模块功能分类列表(from 中国DNN) Carlwave
    DotNetNuke命名空间概述 Carlwave
    Most Popular Questions and Answers on ASP.NET Whidbey(from asp.net forums,write by ASP.NET Team) Carlwave
    火箭官方宣告麦蒂缺阵五周 季后赛前景蒙上阴影 Carlwave
    asp.net有效使用缓存(转) Carlwave
    《Business Rules Engine Overview》《业务规则引擎概述》write by Mark Kamoski Carlwave
    中国详细省市县自治区名称列表(含access数据库和sql2000备份数据库) Carlwave
  • 原文地址:https://www.cnblogs.com/sdlzspl/p/7600449.html
Copyright © 2011-2022 走看看