Spring AOP 的理解
- OOP面向对象,可以满足bean 之间的纵向关系,但并不适用于定义横向的关系,会导致大量代码的重复,而不利于各个模块的重用。
- aop是ioc的一个扩展功能,先有的ioc,再有的aop,只是在ioc的整个流程中新增的一个扩展点而己:BeanPostProcesor
- aop 是基于 动态代理 实现的,主要应用于:权限,事务等中
- bean的创建过程中有一个步骤可以对bean进行扩展实现,aop本身就是一个扩展功能,所以在BeanPostProcessor的后置处理方法
中来进行实现
1、代理对象的创建过程(advice,切面,切点)
2、通过jdk或者cglib的方式来生成代理对象
3、在执行方法调用的时候,会调用到生成的字节码文件中,直接回找到DynamicAdvisoredInterceptor类中的intercept7方法,从此
方法开始执行
4、根据之前定义好的通知来生成拦截器链