Spring知识点梳理——AOP面向切面

Spring中AOP的实现

在了解aop之前,先来认识一下静态代理和动态代理

2.1 代理模式

  • 代理模式为SpringAop的底层
  • 代理模式优点
  1. 可以使角色更加纯粹,不用去关注一些公共的业务
  2. 实现业务的分工
  3. 公共业务发生扩展的时候,可以公共管理
  • 代理模式缺点
  1. 一个真实角色就会产生一个代理角色,代码量会翻倍
静态代理
  • 代理角色分析
    • 抽象角色:一般会使用接口或抽象类来解决
    • 真实角色:被代理的角色
    • 代理角色:一般会做些附属操作
    • 客户:访问代理对象的人
  • 实现步骤
    1. 接口
    2. 真实角色
    3. 代理角色
    4. 客户端访问角色
动态代理
  • 角色分析

    • 角色同静态
    • 代理类是动态生成
    • 基于接口的动态代理
      • 基于接口 — JDK动态代理
    • 基于类的动态代理
      • cglib
  • 使用

    • Proxy类
    • InvocationHandler类
    • 本质是使用反射机制来实现
  • 动态代理优点

    • 一个动态代理的是一个接口,一般就是对应的是一类业务
    • 一个动态代理类可以代理多个类,只要是实现了同一个接口即可

2.8 spring使用aop

  • 代理和aop的关系
  • 使用接口
方式1:使用spring原生接口
  • 配置xml文件
    • 注册bean
    • 配置aop
      • 配置aop约束
    • 配置切入点
      • 配置表达式(定位切入点)
      • 执行环绕增加,将类添加掉切入点上面
方式2:自定义类
  • 将自定义的类加载到bean
  • 自定义切面,ref为要引用的类
    • 定义切入点
    • 定义通知
方式3:使用注解实现
  • 增加注解@Aspect,定义为切面类
  • @Before(“execution(* 类路径,*(…)”),在方法前面使用
  • @After
  • Around,在环绕增强中,给定一个参数名代表我们要获取处理切入的点
  • 配置xml文件,定义注解类bean
  • 开启注解支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值