标签:info 框架 属性 面向切面编程 工作 安全 载器 实施 子接口
AOP思想:采用代理思想,在不改变原来目标代码前提下,实现功能增强!
IoC 工厂制造对象,AOP 代码增强对象,在工厂制造对象过程中,使用代理进行对象的增强(BeanPostProcessor )
Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码,Spring2.0之后,Spring AOP引入对Aspectj的支持,AspecJ是一个基于Java语言的AOP框架.
主要目的:
将日志记录,性能统计,安全控制,事务处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
个人理解:
Joinpoint(连接点) :一个类的所有方法
Pointcut(切入点):需要增强的这个方法
Advice(通知/增强): 对目标对象增强的代码(日志,事务,权限等)
Introduction(引介):一种特殊的通知(包含着所有需要的增强)
Target: 目标对象,需要增强方法的这个类
Weaving(织rget(目标):入): 把通知添加到这个方法中
Proxy(代理): 被代理类(一个类被AOP织入增强后,就产生一个结果代理类)
Aspect(切面):是切入点和通知(引介)的结合
前置增强:org.springframework.aop.BeforeAdvice是前置增强顶层接口,因为Spring只支持方法的增强,其子接口MethodBeforeAdvice是目前可用的前置增强。表示在目标方法执行前实施增强。
后置增强:org.springframework.aop.AfterReturningAdvice是目前可用的后置增强,表示在目标方法执行后实施增强。
环绕增强:org.aopalliance.intercept.MethodInterceptor代表了环绕增强,表示在目标方法执行前后实施增强。直接使用了AOP联盟定义的接口。
异常抛出增强:org.springframework.aop.ThrowsAdvice代表了异常抛出增强,表示在目标方法抛出异常后实施增强。
引介增强:org.springframework.aop.IntroductionInterceptor代表引介增强,表示在目标类中添加一些新的方法和属性。
Spring将introduction通知看作一种特殊类型的拦截通知。用Spring的行话来讲,对方法的增强叫做Wearing(织入),而对类的增强叫introduction(引入)。
Introduction Advice(引入增强)就是对类的功能增强,它也是Spring AOP 提供的一种特殊增强。
<!-- 引用增强方法的bean --> <aop:aspect ref="userBizLogger">
1) 前置增强, 增强是在目录方法之前执行
2) 后置增强, 增强是在目录方法之后执行, 目标方法没有发生异常
3) 最终增强, 不管目标方法是否有异常,都会执行
4) 异常增强, 在目标发生异常的时候,进行增强
5) 环绕增强: 一个顶替上面四个增强
标签:info 框架 属性 面向切面编程 工作 安全 载器 实施 子接口
原文地址:https://www.cnblogs.com/64Byte/p/13096026.html