读码农翻身之AOP
AOP(Aspect Oriented Programming):面向切面编程
1、为什么需要AOP?
又回到了一个特别有意思的示例,代码写完后,如果每个方法的前后需要添加日志,你要怎么办?最简单的办法就是手动在所有的方法前后都调用记录日志的方法,来实现这个功能。听说这样的话,写出来的代码就是下面这样的:
这样确实能实现功能,但是整个代码就显得非常的臃肿。本来一个方法里面的主要业务逻辑反而显得不够重要了。
2、AOP出现了
借用下面的这种图,像日志、安全、事务等这些需求,如果空间想象力丰富的话,是可以像下面这样,以一个类似切面的方式插入到了业务逻辑中。这就是面向切面编程了。
3、如何实现AOP
又见到了很常用的xml文件了。只需要在xml文件中按照约定进行声明,就能通过动态代理来实现功能了。