关于AOP的理解

概念:

将一批具备逻辑相关性的类视作一个切面,并以切面为单位,添加功能;通常用于实现具备横切性质的系统级服务。是OOP的补充。

名词
  • 连接点 JoinPoint : 可以被切入的点,通常是方法。连接点对象描述了当前连接点的信息,比如,目标对象、方法信息、参数等等

  • 通知 Advice : 需要向切面加入的功能

  • 引入 Introduction: 对目标对象添加方法和属性

  • 切面 Aspect : 将切面模块化,包含了要切入的功能,切入点等等

  • 目标对象 Target: 切面通知的对象

  • 代理 Proxy : AOP的一种实现方式

  • 织入 Weaving: 将切面应用到目标对象的过程

  • 切入点 PointCut : 需要织入通知的连接点,通常用SPEL描述

    实现步骤
    • 通知 (SpringBean)
      • 前 before JoinPoint
      • 后 after JoinPoint
      • 环绕 around ProceedingJoinPoint
      • 异常 after-throwing
      • 返回 after-returning
    • 配置
      • 包扫描
      • aop 关联到通知
      • pointcut
      • 通知方法
aop的实现(具体)

代理模式是实现aop的一种方式,作用:在不改变原来代码的情况下,给指定的类添加功能。

  • 静态代理:创建一个接口,创建一个类实现该接口,创建一个代理类也实现该接口并持有该类的实例。

  • 动态代理:创建代理类实现InvocationHandler 接口,在生成代理类实例时,会被(通过实现InvocationHandler 的invoke方法)InvocationHandler 拦截,invoke方法里的实现的内容就是代理内容。

    应用场景
    • 权限验证
    • 性能追踪
    • 日志追踪
    • 异常处理
    • 事务 => Spring 的声明式事务管理
    • 缓存
    • 懒加载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值