aop

AOP 它可以解决OOP和过程化方法不能够很好解决的横切 (crosscut)问题,

AOP的实现主要是通过方法的拦截实现 .在不使用AOP框架的情况下,我们可以通过JDK提供的动态代理 来实现方法的拦截

通过java.lang.reflect.Proxy;提供的
public static Object newProxyInstance(ClassLoader loader,
  Class<?>[] interfaces,
  InvocationHandler h)
方法可以生成一个动态代理对象

通过配置这个将aop加入

   < aop:aspectj-autoproxy />   

 

Spring主要通过代理来实现AOP

下面是AOP的一些基本概念:

切面(Aspect): 对横切关注点的抽象(类似类对对象的抽象)

连接点(JoinPoint): 被拦截到的点,泛指方法

切入点(CutPoint): 对哪些连接点进行拦截的定义

通知(Advice): 在特定的连接点,AOP框架执行的动作.前置/后置/例外/最终/环绕通知(调用方法 之前执行,全部执行完毕之后)

Before ; AfterReturning ; AfterThrowing ; After ; Around

引入(Introduction): 添加方法或字段到被通知的类。 Spring允许引入新的接口到任何被通知的对象。例如,你可以使用一个引入使任何对象实现 IsModified接口,来简化缓存。

目标对象(Target Object): 包含连接点的对象。也被称作 被通知或被代理对象。

AOP代理(AOP Proxy): AOP框架创建的对象,包含通知。 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。

织入(Weaving): 组装方面来创建一个被通知对象。这可以在编译时 完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样, 在运行时完成织入。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值