IOC

作者: 凯凯frank | 来源:发表于2020-02-08 22:01 被阅读0次

    IOC(Inversion of Control)控制反转

    资源的主动创建变成被动获取。由spring来负责控制对象的生命周期和对象间的关系。
    IOC是一个容器,管理所有的Bean,本质上一个map。

    DI(Dependency Injection)依赖注入

    容器运行的时候通过反射,把容器中准备好的bean注入到需要的地方

    Bean的作用域

    1. singleton: 单实例(默认是单实例作用域)
    • 容器启动的时候创建对象,保存在容器中
    • 在容器中只存在一个实例
    1. prototype: 多实例
    • 容器启动的时候不会创建Bean,获取的时候才会创建Bean
    • 每次获取的时候都会创建一个新的Bean
    1. request:在web环境下,同一次请求创建一个Bean(很少用)
    2. session:在web环境下,同一次回话创建一个Bean(很少用)
    <bean id="user" class="com.frank.bean.User" scope="singleton"/>
    
    <bean id="user" class="com.frank.bean.User" scope="prototype"/>
    
     <bean id="user" class="com.frank.bean.User" scope="request"/>
    
    <bean id="user" class="com.frank.bean.User" scope="session"/>
    

    Bean的生命周期

    1. singleton: 单实例Bean,容器启动的时候创建,容器关闭的时候销毁
      (容器启动时)构造器 ->初始化方法->(容器关闭)销毁方法
    2. prototype: 多实例Bean,每次获取的时候创建Bean
      对于 prototype 作用域的 Bean,Spring 只负责创建,当容器创建了 Bean 的实例后,Bean 的实例就交给客户端代码管理,Spring 容器将不再跟踪其生命周期。
      (容器启动时)构造器 ->初始化方法->容器关闭不会调用bean的销毁方法

    生命周期方法

    <bean id="user" class="com.frank.bean.User" destroy-method="" init-method=""/>
    

    相关文章

      网友评论

          本文标题:IOC

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