Spring AOP

认识AOP

             (Aspect  Oriented  Programming , AOP)面向切面编程。是软件编程思想发展到一定阶段的产物。是对面向对象编程(Object  Oriented  Programming , OOP)的有益补充。 AOP一般适用于具有横切逻辑的 场合,如 访问控制, 事物管理,性能监测....。

  什么是 AOP ?

    * /   就是在不改变原有程序的基础上为代码段增加新的功能,对其进行增强处理。 它的设计思想来源于代理设计模式。图(增强处理) :

                 

    在代理模式下可为对象设置 一个代理对象,代理对象为 fun()  提供一个代理方法, 当通过代理对象的 fun() 方法调用原对象的fun() 方法时, 就可以在代理方法中添加新的功能,这就是增强处理。 增强的功能既可以插到原对象的 fun() 方法前面,也可以插到后面。

  Spring AOP应用场景:
                性能检测,访问控制,日志管理,事务等。

 

Aop 核心观念:

        1、横切关注点

对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点

        2、切面(aspect)

类是对物体特征的抽象,切面就是对横切关注点的抽象

      3、连接点(joinpoint)

被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器

     4、切入点(pointcut)

对连接点进行拦截的定义

         5、通知(advice)

所谓通知指的就是指拦截到连接点之后要执行的代码,通知分为前置、后置、异常、最终、环绕通知五类

       6、目标对象

代理的目标对象

         7、织入(weave)

将切面应用到目标对象并导致代理对象创建的过程

         8、引入(introduction)

在不修改代码的前提下,引入可以在运行期为类动态地添加一些方法或字段

   代理模式:静态代理,动态代理,Cglib代理。


——作用:起到增强方法和权限拦截

——JDK的 Proxy 方式实现的动态代理 目标对象必须有接口 没有接口不能实现jdk版动态代理!

——Spring AOP 编程的实现原理就是  动态代理 和 Cglib 代理,当目标类实现接口时使用动态代理,没有则Cglib代理。

——

总结:

静态代理需要自己手动编写代理类和目标方法。

动态代理就不需要自己手动实现代理类和目标方法,但动态代理的目标类要必须实现接口!

Cglib 代理的目标类就不需要实现接口!但目标类不能被final修饰!


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值