Spring框架中除了IOC之外,还有一项比较重要的技术AOP,本篇文章讲解AOP的相关内容。
一、AOP是什么?
AOP(Aspect Oriented Programming)面向切面编程;
OOP(Object Oriented Programming)面向对象编程;
面向切面编程:基于OOP基础之上的新的编程思想,是指在程序运行期间,将某段代码动态的切入到指定方法的指定位置进行运行的这种编程方式,面向切面编程,其底层实现就是动态代理。
二、动态代理
大体意思就是说,我创建了一个对象,创建完成后使用的时候需要打印日志,怎么办呐?就该类中的源码?不可取,这个是有就需要一个可以动态代理这个对象的东西,在我要调用这个对象方法的时候,动态的添加打印日志的功能,
动态代理写起来很麻烦,而且JDK默认的动态代理,如果没有目标对象没有实现任何接口,是无法为他创建代理对象的。
Spring实现了AOP功能,底层就是动态代理,编写是就可以利用Spring一句代码都不去写的创建动态代理,实现简单,而且没有强制要求目标对象必须实现
这里就可以看出AOP是一种:将某段代码动态的切入到指定方法的指定位置进行运行的编程方式