spring源码分析(二)

AOP

Spring AOP 定位

spring源码分析(二)_第1张图片

这部分很重要,以后说

这里可以搜教程,右侧可以download下来案例

spring源码分析(二)_第2张图片
spring源码分析(二)_第3张图片

什么是AOP

与OOP相比,面向切面,传统的OOP开发中的代码是自上而下的,而这些过程会产生一些横切性问题,这些横切性问题和我们的主业务逻辑关系不大,这些横切性问题不会影响到主逻辑实现,但是会散落到代码的各个部分,难以维护。AOP是处理一些横切性问题,AOP的编程思想就是把这些问题和主业务逻辑分开,达到与主业务逻辑解耦的目的,使代码的重用性和开发效率更高。

AOP是编程需要实现的目标,Spring AOP 是实现的手段,还有AspectJ等实现,Spring AOP是动态,AspectJ是静态

AOP解决问题
controller log日志记录
service power权限
controller tx事务
异常处理,效率检查等横切性问题都是AOP解决的问题,关注执行时机,顺序

AOP思想

spring源码分析(二)_第4张图片

Aspect:切面,使下面知识点的总和
Join point:连接点
Pointcut:连接点的集合,有多个Pointcut
Introduction:(新知识点)
Target:代理增强之前的那个对象
advice:声明

spring源码分析(二)_第5张图片

spring提供AspectJ的支持,spring没有借用AspectJ的jar,spring参考了AspectJ的语法风格,

spring源码分析(二)_第6张图片

现在AspectJ的jar包需要单独引入

你可能感兴趣的:(spring源码分析(二))