Spring aop

  • 底层是动态代理
  1. jdk动态代理
    1. 使用jdk反射包中的类实现代理对象的功能。
    2. 要求:目标类必须实现接口
  2. cglib动态代理
    1. 使用第三个方工具库,实现代理类对象的创建。
    2. 要求目标类可以被继承,不能是final限定
    3. 目标类通过继承,生成和改写目标类。
    4. 原理:继承,子类就是代理对象。
  • aop被看作是动态代理规范化,把实现动态代理的步骤规范化。
  • 切面的三要素
    • 切面功能
    • 切面设置位置(在哪个方法上)
    • 切面设置时间(方法的前后环)
  • aop的作用
    1. 不修改源代码的情况下增加功能。
    2. 减少重复代码
    3. 专注业务功能实现(例如,日志功能和业务分开)
    4. 解耦合。(业务功能,和非业务功能)
  • 什么时候用aop技术
    1. 当给系统一个存在的类修改功能,但是又不能修改代码。
    2. 要给项目中的多个类增加一个相同的功能。
    3. 给业务方法增加事务,日志输出。
  • aop的实现框架
    1. spring实现了aop,实现方式是接口
    2. aspectj框架
      1. 配置文件实现aop
      2. 注解实现aop
  • aop中的术语
    1. aspect切面,表示给业务方法增加功能,一般日志输出,事务,权限检查等,是切面,大白话就是,额外的功能代码块。
    2. pointcut切入点。是一个或多个joinpoint的集合。表示切面能执行的功能
    3. advice通知,也叫增强,表示切面执行的时间,例如,方法前,方法后,环绕。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏与ta

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值