[b]Advice[/b]Aspect的具体实现称之为Advice,以记录的动作而言,Adviee中会包括日志记录程序代码是如何实现的,像是DynamicProxyDemo项目中的 LogHandler类就是Advice的一个具体实例,Advice中包括了Cross-cutting concerns 的行为或所要提供的服务。
[b]Joinpoint [/b]
Aspect在应用程序执行时加入业务流程的点或时机称之为Joinpoint,具体来说,就是 Advice在应用程序中被执行的时机,这个时机可能是某个方法被执行之前或之后(或两者都有),或是某个异常发生的时候。
[b]Pointcut[/b]
Pointcut是一个定义,藉由这个定义,您可以指定某个Aspect在哪些Joinpoint时被织入至应用程序之上。具体地说,您可以在某个定义文件中编写Pointcut,当中说明了哪些Aspect 要应用至织入程序中的Joinpoint。
[b]Target [/b]一个Advice被应用的对象或目标对象,例如DynamicProxyDemo项目中的HelloSpeaker 就是LogHandler这个Advice的Target。
[b]Introduction[/b]对于一个现存的类,Introduction可以为其增加行为,而不用修改该类的程序,具体地说,可以为某个已编写、编译完成的类,在执行时期动态加入一些方法或行为,而不用修改或新增任何一行程序代码。
[b]Proxy [/b]在”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主要是透过动态代理来完成。
[b]Weave[/b]
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。
[b]Joinpoint [/b]
Aspect在应用程序执行时加入业务流程的点或时机称之为Joinpoint,具体来说,就是 Advice在应用程序中被执行的时机,这个时机可能是某个方法被执行之前或之后(或两者都有),或是某个异常发生的时候。
[b]Pointcut[/b]
Pointcut是一个定义,藉由这个定义,您可以指定某个Aspect在哪些Joinpoint时被织入至应用程序之上。具体地说,您可以在某个定义文件中编写Pointcut,当中说明了哪些Aspect 要应用至织入程序中的Joinpoint。
[b]Target [/b]一个Advice被应用的对象或目标对象,例如DynamicProxyDemo项目中的HelloSpeaker 就是LogHandler这个Advice的Target。
[b]Introduction[/b]对于一个现存的类,Introduction可以为其增加行为,而不用修改该类的程序,具体地说,可以为某个已编写、编译完成的类,在执行时期动态加入一些方法或行为,而不用修改或新增任何一行程序代码。
[b]Proxy [/b]在”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主要是透过动态代理来完成。
[b]Weave[/b]
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。