读码农翻身之AOP

AOP(Aspect Oriented Programming):面向切面编程

1、为什么需要AOP?
又回到了一个特别有意思的示例,代码写完后,如果每个方法的前后需要添加日志,你要怎么办?最简单的办法就是手动在所有的方法前后都调用记录日志的方法,来实现这个功能。听说这样的话,写出来的代码就是下面这样的:
读码农翻身之AOP
这样确实能实现功能,但是整个代码就显得非常的臃肿。本来一个方法里面的主要业务逻辑反而显得不够重要了。

2、AOP出现了

借用下面的这种图,像日志、安全、事务等这些需求,如果空间想象力丰富的话,是可以像下面这样,以一个类似切面的方式插入到了业务逻辑中。这就是面向切面编程了。
读码农翻身之AOP

3、如何实现AOP
又见到了很常用的xml文件了。只需要在xml文件中按照约定进行声明,就能通过动态代理来实现功能了。
读码农翻身之AOP
读码农翻身之AOP