编程范式: 面向对象,面向过程,函数式,事件驱动,面向切面(面向切面是对面向对象的补充)
应用场景:权限控制,缓存控制,事务控制,日志监控,异常处理
AOP



编程范式概览:
面向过程编程
面向对象编程
函数式编程
事件驱动编程
面向切面编程

AOP的初衷:
DRY:代码重复问题
SoC: 水平分离: 展示层->服务层->持久层
垂直分离: 模块划分(订单、库存等)
切面分离: 分离功能性需求与非功能性需求
使用AOP的好处

非功能性需求
AOP场景
AOP的使用场景
AOP的概念
Spring AOP
编程范式种类概览
1、面向过程编程
2、面向对象编程
3、函数式编程
4、事件驱动编程
5、面向切面编程
AOP
是一种对 面向对象编程 的补充,用来解决特定问题的编程范式,并不是适合所有场景。
初衷:
do not repeat yourself,减少重复代码
separate of concern,关注分离
水平分离,展示层->服务层->持久层
垂直分离,模块划分(订单,库存)
切面分离,把 功能性需求 与 非功能性需求 分开
好处:
集中处理某一关注点/横切逻辑
很方便地添加/删除关注点
侵入性少,增强代码可读性和可维护性
(我们把一些功能的共同性抽取出来,通过一个AOP拦截注入,需要的地方加一个注解即可,不需要之后把注解去掉即可,这些共同功能只需要在一个拦截器维护即可,减少代码,侵入性低,维护很方便,比如存在有一些job调度任务只能单点允许,但是服务是多台部署,就需要解决锁竞争,获取锁的单点即可执行调度,就可以把锁竞争分离出来,放入拦截器中,需要调度的地方加入注解即可)
适用场景:
权限控制 如shiro就是方便通个注解注入,然后拦截
缓存控制
审计日志 如统一打接口参数日志,不用在每个接口处记录
事物控制 spring的@Transaction
性能监控
异常处理 接口统一异常拦截返回
分布式追踪
应用场景记录
AOP 应用场景
AOP的应用场景

支持AOP的编程语言
AOP的应用场景
使用AOP的好处
AOP的初衷
支持AOP的语言
AOP的应用场景
使用AOP的好处
AOP的初衷
AOP是什么
编程范式概览
AOP应用场景
AOP的好处
AOP面向切面编程
支持AOP的编程语言
编程范式概览
AOP使用场景