AOP
Spring AOP 定位
![](https://img.haomeiwen.com/i17476301/b3b6e1be8c23afaa.png)
这部分很重要,以后说
![](https://img.haomeiwen.com/i17476301/ab5925b5098d1f98.png)
这里可以搜教程,右侧可以download下来案例
![](https://img.haomeiwen.com/i17476301/e343a98d6d31920d.png)
![](https://img.haomeiwen.com/i17476301/29ca827fb10863ce.png)
什么是AOP
与OOP相比,面向切面,传统的OOP开发中的代码是自上而下的,而这些过程会产生一些横切性问题,这些横切性问题和我们的主业务逻辑关系不大,这些横切性问题不会影响到主逻辑实现,但是会散落到代码的各个部分,难以维护。AOP是处理一些横切性问题,AOP的编程思想就是把这些问题和主业务逻辑分开,达到与主业务逻辑解耦的目的,使代码的重用性和开发效率更高。
AOP是编程需要实现的目标,Spring AOP 是实现的手段,还有AspectJ等实现,Spring AOP是动态,AspectJ是静态
AOP解决问题
controller log日志记录
service power权限
controller tx事务
异常处理,效率检查等横切性问题都是AOP解决的问题,关注执行时机,顺序
AOP思想
![](https://img.haomeiwen.com/i17476301/f55d0e2ad8676bab.png)
Aspect:切面,使下面知识点的总和
Join point:连接点
Pointcut:连接点的集合,有多个Pointcut
Introduction:(新知识点)
Target:代理增强之前的那个对象
advice:声明
![](https://img.haomeiwen.com/i17476301/bdf95d42417c22de.png)
spring提供AspectJ的支持,spring没有借用AspectJ的jar,spring参考了AspectJ的语法风格,
![](https://img.haomeiwen.com/i17476301/92f6c9eb037123e7.png)
![](https://img.haomeiwen.com/i17476301/c282265e7b594b09.png)
现在AspectJ的jar包需要单独引入
网友评论