spring的AOP调用(一)资料收集

spring的AOP调用(一)资料收集

参考
http://www.redsaga.com/spring_ref/2.0/html/aop.html

AOP概念
连接点(Joinpoint):
它定义在哪里加入你的逻辑功能,对于Spring AOP,Jointpoint指的就是Method。在程序执行过程中某个特 定的点,比如某方法调用的时候或者处理异常的时候。 在Spring AOP中,一个连接点 总是 代表一个方法的 执行。 通过声明一个org.aspectj.lang.JoinPoint类型的参数可以使通知(Advice)的主体部分获得连接点信 息。
通知(Advice):
特定的Jointpoint处运行的代码,对于Spring AOP 来讲,有Before advice、AfterreturningAdvice、 ThrowAdvice、AroundAdvice(MethodInteceptor)等。 在切面的某个特定的连接点(Joinpoint)上执行的 动作。通知有各种类型,其中包括“around”、“before”和“after”等通知。
切入点(Pointcut):
一组Joinpoint,就是说一个Advice可能在多个地方植入。匹配连接点(Joinpoint)的断言。通知和一个切入 点表达式关联,并在满足这个切入点的连接点上运行(例如,当执行某个特定名称的方法时)。 切入点表达 式如何和连接点匹配是AOP的核心:Spring缺省使用AspectJ切入点语法。
切面(Aspect):
Advice和Pointcut的组合,但是Spring AOP 中的Advisor也是这样一个东西,但是Spring中为什么叫Advisor 而不叫做Aspect。 在普通类中以 @Aspect 注解(@AspectJ风格)来实现。一个关注点的模块化,这个关 注点可能会横切多个对象
织入(Weaving):
将Aspect加入到程序代码的过程,对于Spring AOP,由ProxyFactory或者ProxyFactoryBean负责植入动作
目标对象(Target Object):
需要Aspect功能的对象。被一个或者多个切面(aspect)所通知(advise)的对象。也有人把它叫做 被通知 (advised) 对象。 既然Spring AOP是通过运行时代理实现的,这个对象永远是一个 被代理(proxied) 对 象。
引入(Introduction):


Spring AOP 通知类型
前置通知(Before advice):
前置通知需实现MethodBeforeAdvice,但是该接口的Parent是BeforeAdvice,致于什么用处我想可能是扩 展性需求的设计吧。或者Spring未来也并不局限于Method的JoinPoint(胡乱猜测)。BeforeAdvice可以修改 目标的参数,也可以通过抛出异常来阻止目标运行。
返回后通知(After returning advice):
实现AfterreturningAdvice,我们无法修改方法的返回值,但是可以通过抛出异常阻止方法运行。
在某连接点(join point)正常完成后执行的通知:例如,一个方法没有抛出任何异常,正常返回
环绕通知(Around Advice):
Spring 通过实现MethodInterceptor(aopalliance)来实现包围通知,最大特点是可以修改返回值,当然它在 方法前后都加入了自己的逻辑代码,因此功能异常强大。通过MethodInvocation.proceed()来调用目标方法 (甚至可以不调用)
后通知(After (finally) advice):
当某连接点退出的时候执行的通知(不论是正常返回还是异常退出)
抛出异常后通知(After throwing advice):
通过实现若干afterThrowing()来实现


Spring AOP Pointcut
ComposablePointcut
ControlFlowPointcut
DynamicMatchMatcherPointcut
JdkRegexpMethodPointcut
Perl5RegexpMethodPointcut
NameMatchMethodPointcut
StaticMethodMatcherPointcut

自动代理
BeanNameAutoProxyCreator

你可能感兴趣的:(spring,AOP,html)