Aop是spring的动态代理、切面编程,是对oop的一种衍生和继承也是是函数式编程的一种衍生范型,对项目的业务需求进行拆分减少耦合度提高了方法的重用性,减少了对开发和后期代码维护的工作量
1.个人理解
主要是为了减少冗余性,避免出现同一种代码多处存在,需要更改的时候要把所有使用的地方全部更改一次。
还有就是可以更改一个程序的执行顺序比较明显的就是spring中的 Controller、Service、DAO这三个模块的调用和解耦
2.实现的方式
有两种一种为:java JDK的实现(Proxy.newProxyInstance()这个方法)
https://www.cnblogs.com/cdf-opensource-007/p/6443314.html
另一种是CGLib (这种的代理操作太多了,我放一个连接了解一下)
https://blog.csdn.net/gyshun/article/details/81000997