Spring之AOP

简介

1、概念

AOP:Aspect-Oriented Programming 面向切面编程,是OOP面向对象编程的一种补充。

将程序宗交叉业务逻辑(事物、日志)代码提取出来,封装成切面,有AOP容器在适当时机(代码位置)将封装的切面动态的织入到具体业务逻辑中。

AOP不是Spring特有的,C++等也有。

2、应用场合

适用于具有横切逻辑的场合,如事物管理、日志管理、性能检测、异常通知、访问控制等。

3、作用

1)不改变原有代码的基础上动态添加新的功能。

2)模块化

4、术语

连接点Joinpoint : 

程序执行的某个特定的位置,如方法调用前、方法调用后、方法抛出异常时、方法调用前后等。

切入点:

定位查找到需要的连接点,即切入点。一个切入点可包含多个连接点。

增强 Advice :

在切点上执行的一段程序代码,用来实现某些功能。

目标对象 target:

将执行增强处理的目标类。

织入 weaving:

将增强添加到目标类具体切入点上的过程。

代理 proxy:

一个类被织入增强之后,会产生代理类。

切面 aspect:

切点和增强的组合就叫做切面。

引介 Introduction 也称为引入:

可以为一个类添加一些属性和方法,但是一般不建议使用。

重点理解切入点、增强、目标对象 的概念

实现原理

1、代理模式

概念:为其他对象提供一种代理,以控制对这个对象的访问,起到中介的作用。

        通过代理对象访问目标对象,可以增强额外的操作,扩展目标对象的功能。

分类:

    静态代理

     代理类是程序员自己创建,或者工具生成的。

    所谓的静态就是程序运行之前就已经存在代理类的字节码文件。

    动态代理

    代理类是程序在运行期间由JVM虚拟机根据反射等机制动态生成的,自动生成代理类和代理对象。

    所谓动态就是指程序运行之前不存在代理类的字节码文件。

学习连接:https://blog.csdn.net/csdnliuxin123524/article/details/81219696?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.nonecase

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值