AOP
什么是AOP
AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
面向对象,面向接口,面向切面,面向注解
Aop在Spring中的作用
提供声明式事务;允许用户自定义切面
- 横切关注点:跨越应用程序多个模块的方法或功能。即是,与我们业务逻辑无关的,但是我们需要关注的部分,就是横切关注点。如日志 , 安全 , 缓存 , 事务等等 …
- 切面(ASPECT):横切关注点 被模块化 的特殊对象。即,它是一个类。
- 通知(Advice):切面必须要完成的工作。即,它是类中的一个方法。
- 目标(Target):被通知对象。
- 代理(Proxy):向目标对象应用通知之后创建的对象。
- 切入点(PointCut):切面通知 执行的 “地点”的定义。
- 连接点(JointPoint):与切入点匹配的执行点。
代理,增强
目标类Service + 额外功能 = 代理类
比如:日志处理/事务处理/异常处理/性能分析…Redis 非关系型数据
1. 通过spring AOP的代理功能,给代码增加额外的通用功能
2. 业务逻辑就专心的处理实际需求,通用的增强功能独立出来
3. 代理的专业术语
额外功能叫 增强 通知
目标类叫 切入点 或 切面
将增强 加入到 切入点,叫编织
AOP是面向切面编程的一种实现
面向对象OOP
面向接口 定义标化的调用
面向切面 添加辅助功能
实现AOP
1. 导包
2. 书写一个增强类
3. 配置增强类的bean
4. 配置AOP的编织功能 写接口的包路径
AOP常用的几种增强方式
增强方式4种:
- 前置增强,在核心功能之前执行的额外功能
2.后置增强,在核心功能之后执行的额外功能
3.异常增强,在核心功能发生异常时执行的额外功能,先捕获,后抛出
4.环绕增强,在核心功能之前以及之后执行的额外功能