`
seastar09
  • 浏览: 17405 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

spring中的AOP(具体概念)

阅读更多
AdviceAspect的具体实现称之为Advice,以记录的动作而言,Adviee中会包括日志记录程序代码是如何实现的,像是DynamicProxyDemo项目中的 LogHandler类就是Advice的一个具体实例,Advice中包括了Cross-cutting concerns 的行为或所要提供的服务。
Joinpoint
Aspect在应用程序执行时加入业务流程的点或时机称之为Joinpoint,具体来说,就是 Advice在应用程序中被执行的时机,这个时机可能是某个方法被执行之前或之后(或两者都有),或是某个异常发生的时候。
Pointcut
Pointcut是一个定义,藉由这个定义,您可以指定某个Aspect在哪些Joinpoint时被织入至应用程序之上。具体地说,您可以在某个定义文件中编写Pointcut,当中说明了哪些Aspect 要应用至织入程序中的Joinpoint。
Target 一个Advice被应用的对象或目标对象,例如DynamicProxyDemo项目中的HelloSpeaker 就是LogHandler这个Advice的Target。
Introduction对于一个现存的类,Introduction可以为其增加行为,而不用修改该类的程序,具体地说,可以为某个已编写、编译完成的类,在执行时期动态加入一些方法或行为,而不用修改或新增任何一行程序代码。
Proxy 在”Expert One-on-One JZEE Development without EJB”,一书中,Rod Johnson、Juergen Hoener在第八章中有提到,AOP的实现有五个主要的策略:Dynamic Proxies、Dynamic Byte Code Generation、Java Code Generation、Use of a Custon Class Loader、Language Extensions。
在之前静态代理与动态代理中,己经使用实际的程序范例介绍过代理机制,Spring 的 AOP主要是透过动态代理来完成。
Weave
Advice被应用至对象之上的过程称之为织入(Weave) ,在AOP中织入的方式有几个时间点:编译时期(Compile time)、类加载时期(Classload time)、执行时期(Runtime)。
不同的 AOP 框架会有其对 AOP 概念的不同实现方式,主要的差别在于所提供的 Joinpoints 、 Aspects 的丰富程度,以及它们如何被织入( Weave )至应用程序(像是 Pointcuts 的定义方式)。
Spring 的Advice用 Java 程序语言来编写,而不使用特定的 AOP 语言,在定义 Pointcuts 时可以使用XML 配置文件,这两者的编写对于 Java 开发人员来说都很熟悉,您不必学习特定的语法,就可以用熟悉的 Java 程序语言与 XML 格式来运用 Spring AOP。
分享到:
评论

相关推荐

    Spring AOP面向方面编程原理:AOP概念

    ### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程...

    spring aop jar 包

    在Spring AOP中,主要涉及以下几个核心概念: 1. **切面(Aspect)**:切面是关注点的模块化,比如日志记录、事务管理、性能监控等。在Spring AOP中,切面由通知(Advice)和切点(Pointcut)定义。 2. **通知...

    spring_aop.rar_spring_aop

    下面将详细介绍Spring AOP的关键概念和实现方式。 1. **切面(Aspect)**:切面是Spring AOP的核心,它封装了系统中的关注点,比如日志记录就是一个关注点。一个切面可以包含多个通知(advice)和切点(pointcut)...

    spring2.5.6 aop简单示例

    在本示例中,我们将深入探讨Spring框架2.5.6版本中的面向切面编程(AOP)概念。Spring AOP是Spring框架的核心组件之一,它允许开发者在不修改源代码的情况下,对程序进行横切关注点(如日志、事务管理、性能监控等)...

    简单spring aop 例子

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点问题,如日志、事务管理、安全性等。本示例将简要介绍如何在Spring应用中实现AOP,通过实际的...

    Spring AOP完整例子

    为了更深入地理解这些概念,你可以查看压缩包中的具体代码,例如,`ExampleAspect`类可能会包含切面逻辑,而`Service`类中的某些方法可能是切点。通过阅读`Test`类,你可以看到如何设置测试场景并触发AOP通知。 ...

    Spring-Aop所有jar

    在Spring框架中,AOP通过代理模式实现,可以是JDK动态代理或者CGLIB代理。 首先,我们需要理解AOP的基本概念。切面(Aspect)是包含关注点的模块化单元,它封装了跨越多个对象的行为或责任。通知(Advice)是切面在...

    五、Spring源码分析——Spring Aop

    `org.aopalliance.intercept.MethodInterceptor`接口定义了拦截器的行为,而`org.springframework.aop.MethodBeforeAdvice`等类则是具体的通知实现。`org.springframework.aop.aspectj.AspectJExpressionPointcut`类...

    spring-aop AND proxy

    博文链接中提到的是作者“mofeichen”在iteye博客上分享的一篇关于Spring AOP的文章,虽然具体内容未给出,但可以推测可能涉及了AOP的原理、配置、使用示例以及在实际项目中的应用。 标签“源码”意味着这篇博客...

    spring_AOP.rar_876.aop_java aop_spring_aop

    在Spring AOP中,主要有以下核心概念: 1. 切面(Aspect):包含了多个通知(advice)的模块,定义了跨越多个对象的行为。 2. 通知(Advice):在特定连接点(Join Point)执行的代码,如方法调用前、后或异常发生时...

    springAOP中文文档

    ### Spring AOP 概念与实践 #### 一、AOP 概述 **面向切面编程 (Aspect-Oriented Programming, AOP)** 是一种编程范式,它旨在提高程序的模块化程度,通过分离横切关注点来解决传统面向对象编程中难以处理的问题。...

    Spring示例_Printer_Spring_AOP_Spring_Proxy

    在本示例中,"Spring示例_Printer_Spring_AOP_Spring_Proxy" 主要关注的是Spring框架中的核心概念,特别是AOP(面向切面编程)和代理模式的应用。让我们深入探讨这些知识点。 首先,Spring框架是Java开发中最常用的...

    使用Spring配置文件实现AOP

    在Spring框架中,面向切面编程(Aspect Oriented Programming,简称AOP)是一种强大的设计模式,它允许我们定义横切关注点,如日志、事务管理、权限检查等,然后将这些关注点与核心业务逻辑解耦。这篇教程将详细讲解...

    Spring_AOP

    Spring AOP(面向切面编程)是Spring框架中的一个重要组件,它允许开发者在不修改源代码的情况下,通过插入额外的逻辑来扩展或增强应用程序的行为。AOP的核心概念是切面(Aspect),它封装了横切关注点,如日志、...

    Spring AOP实现机制

    AOP概念 - **切面(Aspect)**:切面是关注点的模块化,通常包括业务逻辑与横切关注点,如日志、安全检查等。 - **通知(Advice)**:通知是切面在特定连接点上执行的行为,如方法调用前、后、异常时等。 - **连接...

    spring aop 依赖jar

    在Spring中,AOP主要用于实现日志记录、事务管理、权限控制等功能。 在描述中提到的问题,用户在尝试使用Spring AOP的注解`@Aspect`时遇到了没有提示的情况。这通常是因为缺少了相关的jar包依赖。Spring AOP的实现...

    以注解方式模拟Spring IoC AOP

    在Spring框架中,依赖注入(Inversion of Control, IoC)和面向切面编程(Aspect Oriented Programming, AOP)是两大核心特性。本篇将深入探讨如何通过注解方式来模拟Spring的这两种机制,帮助你理解其底层原理。 #...

    Spring中Aop的使用

    在"Spring中Aop的使用"的示例中,我们可能会创建一个包含以上概念的简单应用。首先,定义一个切面类,其中包含各种类型的通知方法。然后,使用`@Aspect`注解标记这个类,并使用`@Before`、`@After`、`@After...

Global site tag (gtag.js) - Google Analytics