一、AOP中一些常用概念。
1、切面(Aspect)。
切面是AOP的核心,它将多个类的通用行为封装成可重用的模块,该模块含有一组API提供横切功能。
2、连接点(Join point)。
需要被aop增强的方法叫做连接点。
3、通知(Advice)。
aop在特定切入点上执行的增强处理。包括before、after、afterReturning、afterThrowing、around。
4、切入点(PointCut)。
实际真正被增强的方法称为切入点。
二、AOP底层原理。
aop底层采用动态代理机制实现,即接口+实现类。
1、基于接口的jdk动态代理。
如果要代理的对象实现了某个接口,那么spring aop使用jdk proxy创建代理对象。
2、基于类的cglib动态代理。
如果要代理的对象没有实现接口,此时无法使用jdk proxy进行代理,这时spring aop使用cglib生成一个被代理对象的子类来作为代理。由代理创建出一个和接口实现平级的对象,但是这个对象不是一个真正的对象,只是一个代理对象。
三、AOP的应用场景。
主要用于日志记录、性能统计、安全控制、事务处理等方面。