一、对AOP的基本了解
我们要做的不是纵向的抽取,而是横向的抽取
AOP是OOP的有益补充,为程序开发提供了一个崭新的思考角度,可以将重复性的横切逻辑抽取到统一的模块中
通过OOP的纵向抽象和AOP的横向抽取,程序才可以真正解决重复性代码性问题
定义:在运行时,动态地将代码切入到类的指定方法,指定位置上的编程思想就是面向切面的编程
AOP基本是通过代理机制实现的
注意:AOP的使用场景是日志和事务,代理(Proxy)的对象是接口
二、实例练习
添加依赖
![](https://img.haomeiwen.com/i16516148/38f2815a952d0b38.png)
Tank的移动:
![](https://img.haomeiwen.com/i16516148/d7ce4958163ef7a9.png)
![](https://img.haomeiwen.com/i16516148/544d71ef09d3c29d.png)
TankProxy类:
![](https://img.haomeiwen.com/i16516148/15be3635c00a1525.png)
![](https://img.haomeiwen.com/i16516148/05b235b9e510e4bd.png)
![](https://img.haomeiwen.com/i16516148/f2cc34682b4ad348.png)
三、Hello的前置增强练习
1.添加依赖
之前已添加可以忽略
2.创建Hello接口和其实现类
![](https://img.haomeiwen.com/i16516148/ed996ce8332d5a2d.png)
3.MyBeforeAdvice类
![](https://img.haomeiwen.com/i16516148/a516e918efd023aa.png)
4.配置xml文件
![](https://img.haomeiwen.com/i16516148/2b77d2bf54bb4cb0.png)
5.创建app类
![](https://img.haomeiwen.com/i16516148/cd6efc54b69c3e1d.png)
6.运行结果
![](https://img.haomeiwen.com/i16516148/8595cff4029906c3.png)
网友评论