定义
AOP: aspect oriented programming
面向切面编程
一种编程范式,指导开发者如何组织程序结构
作用:在不惊动原始设计的基础上 为其进行功能增强
Spring理念: 无入侵式,无侵入式
OOP: object oriented programing
面向对象编程
场景演示
比如我想统计一下,执行某些业务,所需要的时间
但是我懒得一个个去改写代码或写新代码去统计
抽取出来做单独的方法
一些名称定义
然后管
- 原始的,未来要被追加的功能叫 连接点 (黄色 joinpoint)
- 要被追加的功能叫 切入点 (pointcut)
- 被抽离出来的共性功能,要共用的功能叫 通知 (蓝色 advice)
- 把通知 和 切入点 绑定起来的,就叫做切面 (aspect)
- 当然,在Java中,方法不能独立存在,所以存放通知的类就叫通知类
总结:抽出来做成通知,找连接点,要连的就是切入点,这样就去做切面
没错,连接点包括切入点
入门案例
案例设定:测试接口执行效率
简化设定:在接口执行前输出当前系统时间
开发模式:xml 或者 注解
思路分析:
- 导入坐标
- 制作连接到方法 (原始操作,Dao接口与实现类)
- 制作共性功能(通知类与通知)
- 定义切入点
- 绑定切入点与通知的关系(即切面)
项目结构梳理
操作
切入点 注解Pointcut
使得方法在切入点什么时候执行
改成update也有功能