美文网首页
spring ioc aop 动态代理之间的关系

spring ioc aop 动态代理之间的关系

作者: 达微 | 来源:发表于2021-11-02 22:01 被阅读0次

1、类加载器加载class文件

2、加载到jvm 中,obtainFreshBeanFactory()里的refreshBeanFactory()来为每个bean生成 一个BeanDefinition ,

  注意此时不是我们想要的对象,只是bean的信息,依赖关系等,后续后面spring解析器去解析一个BeanDefinition。

3、BeanDefinition信息注册,

  将抽象好的BeanDefinition统一注册到IoC容器中,IoC容器是通过hashMap来维护BeanDefinition信息的,key为beanName,value为BeanDefinition。

4、createBeanInstance()根据beanDefinition的信息创建bean的实例

    怎么创建呢?主要有两种方法,一种是通过beanUtil反射,另一种 CGLIB来实例化对象,如果Bean定义中有方法覆盖,则就需要CGLIB父

。。。

7、至于aop特性是实例化好了之后,后置处理来处理

    如果我们spring配置了AOP的话,这个时候就要考虑是cglib还是jdk 动态代理去实现这个功能

1、在默认情况下,如果spring bean有接口就使用jdk的动态代理。Proxy.newProxyInstance。如果没有接口就调用cglib通过操作字节码去生成目标类的子类来完成代理。

2、可以手动配置,强制都使用cglib,如果xml中配置 proxy-target-class=true 或则在注解上配置

@EnableAspectJAutoProxy(proxyTargetClass=true) 这个时候就全部使用cglib来完成动态代理

记得aop特性是初始化的时候完成的

4、如果需要类,spring 可以通过注解 或则代码去 map中 获取bean 。

5、ioc容器负责创建,管理,装配对象,以及管理对象的生命周期

相关文章

  • AOP代理

    Spring中的AOP代理由Spring的IOC容器负责生成、管理,其依赖关系也由IOC容器负责管理。AOP代理可...

  • Spring AOP 要点

    Spring对AOP的支持 Spring中AOP代理由Spring的IOC容器负责生成、管理,其依赖关系也由IOC...

  • Spring面试常问内容

    Spring 面试问题 TOP 50 IOC、AOP、AOP原理动态代理和cglib原理与二者之间的区别、Bean...

  • spring ioc aop 动态代理之间的关系

    1、类加载器加载class文件 2、加载到jvm 中,obtainFreshBeanFactory()里的refr...

  • Spring基础系列-AOP源码分析

    一、概述 Spring的两大特性:IOC和AOP。 AOP是面向切面编程,Spring内置了自己实现的基于动态代理...

  • Spring的AOP支持

    Spring的AOP支持: Spring中的AOP代理由Spring的IOC容器负责生成、管理,其依赖关系也由IO...

  • Spring AOP动态代理

    IOC和AOP是Spring中最重要的两个概念,而AOP最核心的部分在于动态代理。Spring AOP中的拦截功能...

  • spring

    Spring 01 Spring 02 Spring 03 概念 IoC容器 类之间关系 Spring aop注解...

  • Spring 学习

    Spring 01 Spring 02 Spring 03 概念 IoC容器 类之间关系 Spring aop注解...

  • Spring 基础5 —— AOP 与事务

    Spring 的 AOP 支持 Spring 的 AOP 代理由 Spring 的 IoC 容器负责生成、管理,其...

网友评论

      本文标题:spring ioc aop 动态代理之间的关系

      本文链接:https://www.haomeiwen.com/subject/fmwfzltx.html