一、概念
spring的两大特性、IOC与AOP。其中AOP是面向切面的编程,我的理解是将对象进行切分,在切分口塞进去自己想要的方法或者行为。比如我们的日志,事物等,他们是零散地分布在不同的类里面。在学习AOP之前应该先了解JAVA的代理机制。
二、代码分析
总共分为3个步奏
1、引入jar包
在使用aop之前需要引入两个jar包
2、代码编写
需要一个接口类,两个实现类,一个需要多处显示的类,一个程序主入口类
1)接口类
2)两个实现类
3)切面类
4)程序入口类
3、aop配置文件,此处我的配置文件名称为application-aop.xml
4、代码调试
我们预计结果是在container实现类的每一个方法前后都显示当前时间,控制台结果如下
三、原理
AOP使用到了代理技术,代理分为动态代理与静态代理,动态代理是在代码运行期间生成class的字节码文件,静态代理是在编译期间就生成了。相对动态代理,动态代理的性能会稍微低一点点,因为用到了反射,但是在使用中应该不是有多大的影响。