①在aop注解中@EnableAspectJAutoProxy,会通过@import向spring容器注册一个配置类,在配置类中想容器注入了一个AspectJAnnotationAutoProxyCreator这个类,这个是aop的核心,这个类实现了实现了BeanPostProcessor后置处理器,还实现了InstantiationAwareBeanPostProcessor,在Bean初始化完成前后做事情。还实现了BeanFactoryAware接口,做了两件事:1.把Beanfactory保存到AnnotationAwareAspectJAutoProxyCreator 组件上.2.: 为AnnotationAwareAspectJAutoProxyCreator 的aspectJAdvisorsBuilder aspect增强器构建器赋值
他同时实现了BeanPostProcessor的两个方法和InstantiationAwareBeanPostProcessor的两个方法。
他在实现InstantiationAwareBeanPostProcessor的 postProcessBeforeInstantiation(Class<?> beanClass, String beanName)方法中他会去找出所有的的切面并转化为增强器放入缓存中。在调用BeanPostProcessor的postProcessAfterInitialization(Object bean, String beanName)方法中会从缓存中获取当前bean对应的增强器类,并创建代理对象。
AOP实现逻辑1
最新推荐文章于 2024-04-03 05:11:11 发布
259





