• AOP 笔记


    AOP

    作用:在不惊动原始设计的基础上进行功能增强。

    无侵入式编程
    连接点程序执行的任意位置,SpringAOP中,理解为方法的执行。
    在这里插入图片描述
    切入点:匹配连接点的式子,要追加功能的方法
    在这里插入图片描述

    通知(写在通知类中):共性功能,在切入点执行的操作。

    • SpringAOP中,最终以方法的形式呈现
      通知类:定义通知的类
      切面(Aspect):描述通知的共性功能和切入点的关系
    步骤

    在这里插入图片描述
    代码实现步骤:
    1、导入相关坐标
    2、定义dao接口与实现类
    3、定义通知类
    4、@Pointcut注解定义切入点
    在这里插入图片描述
    5、@Before等注解绑定切入点与通知关系
    6、@Component @Aspect告诉程序通知类用来AOP
    7、@EnaleAspectJAutoProxy : 告诉程序注解开发AOP;开启功能

    AOP工作流程

    • Spring容器启动
    • 读取所有切面配置中的切入点,只读取已经配置了(建立联系的)切入电
    • 初始化bean,判断bean对应的类中的方法是否匹配到任意切点
    • 匹配失败,创建对象
    • 匹配成功,创建目标对象的代理对象 (代理模式实现)
    • 获取bean执行方法
      在这里插入图片描述
      tips:AOP重写了toString
    切入点表达式
    • 可以使用通配符
      在这里插入图片描述
    AOP编码技巧
    • 安装AOP标准规范开发
    • 描述切入点描述接口
    • 在这里插入图片描述
    • 返回值对于增删改使用精确类型加速匹配;查询类使用*通配快速匹配
    • 包名书写避免…匹配,常用*做单个包描述匹配,或精确匹配
    • 接口名/类名书写名称与模块相关的采用*匹配,eg.UserService书写成*Service,绑定业务层接口
    • 方法名书写以动词进行精准匹配,名词采用匹配。eg. getById书写成getBy, selectAll书写成selectAll
    • 不使用异常作为匹配规则
    AOP通知类型
    • 前置通知
    • 后置通知
    • 环绕通知
    • 返回后通知
    • 抛出异常后通知
    环绕通知
    • @Around
      在这里插入图片描述
      有返回值情形
      在这里插入图片描述
      在这里插入图片描述

    AOP通知获取数据

    • 获取参数
    • 获取返回值
    • 获取异常
      在这里插入图片描述

    Spring事务

    • 事务管理员:发起事务方,在Spring中,通常指代业务层开启事务的方法。
    • 事务协调员:加入事务方,在Spring中,通常指代数据层方法,也可以是业务层方法。
    rollbackFor:设置事务回滚异常
  • 相关阅读:
    PromptPort:为大模型定制的创意AI提示词工具库
    Python3-excel文档操作(四):利用openpyxl库处理excel表格:将数据进行可视化展示在Excel中
    2022-11-14对象树模型
    CentOS7 磁盘重新调整分配
    学习完C++ 并发编程后 手写线程池 最简单的线程池
    leetcode 101. Symmetric Tree 对称二叉树(简单)
    react&antd问题(4)
    Linux下使用宏定义判断系统架构和系统类型
    Linux虚拟机和开发板scp命令互传文件
    UDS入门至精通系列:Service 29
  • 原文地址:https://blog.csdn.net/yfdddong/article/details/134013231