管理进化

aop是怎么实现的


aop实现步骤为:1.spring 容器启动;2.实现逻辑的方法;3.调用方法,创建代理。aop实现方式有很多种,包括反射、元数据处理、程序处理、拦截器处理等。

1.spring 容器启动

每个bean的实例化之前都会先经过AbstractAutoProxyCreator类的postProcessAfterInitialization()这个方法,然后接下来是调用wrapIfNecessary方法。

2.实现逻辑的方法

进入wrapIfNecessary方法后,我们直接看重点实现逻辑的方法getAdvicesAndAdvisorsForBean,这个方法会提取当前bean 的所有增强方法,然后获取到适合的当前bean 的增强方法,然后对增强方法进行排序,最后返回。

3.调用方法,创建代理

获取到当前bean的增强方法后,便调用createProxy方法,创建代理。先创建代理工厂proxyFactory,然后获取当前bean 的增强器advisors,把当前获取到的增强器添加到代理工厂proxyFactory,然后设置当前的代理工的代理目标对象为当前bean,最后根据配置创建JDK的动态代理工厂,或者CGLIB的动态代理工厂,然后返回proxyFactory。


最后,推荐我们的管理工具给大家

智齿客服