Spring004--Spring AOP(mooc)
一。Spring AOP概览 1.1。AOP(面向切面编程)是什么 1。 AOP是一种编程范式,而不是编程语言。 2。解决特写问题,不能解决所有问题 3。是OOP的补充,不是替代 除了面向切面编程,还有如下编程范式: 1。面向过程编程:如c/python 2。面向对象编程:如java/c++ 3。函数式编程 4。事件驱动编程(GUI开发中比较常见) 5。面向切面编程 1.2。AOP(面向切面编程)解决的问题 1。DRY:Don't Repeat yourself 避免代码重复问题 2。SoC:Separation of Concerns 关注点分离 (1)。水平分离:展示层-》服务层-》持久层 (2)。垂直分离:模块划分(订单/库存等业务角度) (3)。切面分离:分离功能性需求与非功能性需求(把非功能性需求从功能性需求中剥离开来集中管理) 1.3。AOP(面向切面编程)好处 AOP好处即为“集中管理”: 1。集中处理某一关注点/横切逻辑; 2。可以方便的添加/删除关注点; 3。侵入性少,增强代码可读性及可维护性; 1.4。AOP(面向切面编程)应用声景 1。权限控制 2。缓存控制 3。事务控制(数据库事务控制) 4。审计日志(操作记录) 5。性能监控 6。分布式追踪 7。异常处理 以上为偏非功能性需求,特别适合AOP应用声景。 1.5。支持AOP