Spring aop

Spring aop,第1张

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通知,也叫增强,表示切面执行的时间,例如,方法前,方法后,环绕。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5693008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存