美文网首页
Spring IOC

Spring IOC

作者: 垂直居中的句号 | 来源:发表于2021-05-13 18:11 被阅读0次

    IOC (Inversion of control)控制反转。
    将对象创建(实例化、管理)的控制权交给了IOC容器。
    由IOC容器实例化对象开存储起来,需要哪个对象时从IOC容器中取。
    不使用spring的话,是由应用程序需要什么对象,就自己创建,使用spring ,则是由IOC容器统一管理,应用程序等待他把需要的依赖注入到自己的组件中。
    DI 依赖注入 (Dependency Injection)由容器动态的将依赖的对象注入到组件中。与IOC是同一概念的不同描述,DI指被注入对象依赖IOC容器配置依赖对象。

    谁依赖谁:应用程序依赖IOC容器。
    为什么需要依赖:应用程序需要IOC容器来提供对象需要的外部资源。
    谁注入谁:IOC容器注入应用程序的某个对象和依赖的对象。
    注入了什么:注入了某个对象需要的外部资源。

    Bean 的生命周期
    1、创建=》构造方法=》set方法注入值=》init初始化=》构建成功=》回收
    2、创建=》构造方法=》注入属性=》后处理器前置过程=》构建成功=》后处理器后置过程=》容器关闭时销毁
    3、创建=》执行构造方法=》注入属性值=》BeanNameAware的setBeanName=》BeanFactoryAware的setBeanFactory
    =>后处理器的前置过程 (BeanPostProcessor . processBeforeInitialization 方法 )
    =>initializingBean 的afterPropertiesSet() =》执行bean的init-method方法=》后置处理器的后置过程(BeanPostPeocessor .pocessAfterInitilization)==>Bean可以使用了,容器关闭时 =》DisposibleBean 的destory()销毁

    4、beanDefinition 里面会存储一些bean实例的信息,如属性值,scope,构造方法的参数列表。创建bean的时候会根据beanDefinition里描述的信息来创建,beanDefinition的作用是为了可以方便的进行修改属性值和其他元信息,比如通过BeanFactoryPostProcessor进行修改一些信息,然后在创建Bean对象时就可以结合原始信息和修改后的信息创建对象了。

    相关文章

      网友评论

          本文标题:Spring IOC

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