Spring AOP入门

70 阅读1分钟

定义

AOP: aspect oriented programming

面向切面编程

一种编程范式,指导开发者如何组织程序结构

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

Spring理念: 无入侵式,无侵入式

OOP: object oriented programing

面向对象编程

场景演示

比如我想统计一下,执行某些业务,所需要的时间

但是我懒得一个个去改写代码或写新代码去统计

抽取出来做单独的方法

一些名称定义

然后管

  • 原始的,未来要被追加的功能叫 连接点 (黄色 joinpoint)
  • 要被追加的功能叫 切入点 (pointcut)
  • 被抽离出来的共性功能,要共用的功能叫 通知 (蓝色 advice)
  • 通知切入点 绑定起来的,就叫做切面 (aspect)
  • 当然,在Java中,方法不能独立存在,所以存放通知的类就叫通知类

总结:抽出来做成通知,找连接点,要连的就是切入点,这样就去做切面

没错,连接点包括切入点

入门案例

案例设定:测试接口执行效率

简化设定:在接口执行前输出当前系统时间

开发模式:xml 或者 注解

思路分析:

  • 导入坐标
  • 制作连接到方法 (原始操作,Dao接口与实现类)
  • 制作共性功能(通知类与通知)
  • 定义切入点
  • 绑定切入点与通知的关系(即切面)

项目结构梳理

操作

切入点 注解Pointcut

使得方法在切入点什么时候执行

改成update也有功能