zoukankan      html  css  js  c++  java
  • Spring Ioc介绍和Bean的实例化

    一.IoC:Inverse of Control 控制反转   //  依赖注入  Dependency Injection

    控制:某一接口具体实现类的选择权

    反转:从调用者中移除控制权,转交第三方

    二.基于装置的装配

    创建应用对象之间协作关系的行为被称装配包括三方面工作:

    1. BeanBean 的实例化
    2. 属性注入
    3. 建立 BeanBean 之间的关系

    三,Bean的实例化

    1. 生成Bean的实例包括三种方法:

    方法一:默认构造函数的(必须要把默认构造函数写出来)

    <bean id="car2" class="com.sitong.instantiationbean.Car"></bean>  

    方法二:静态工厂

    public class StaticFactory {
        static Car createCar(){
            return new Car(200,"aaa");
        }
    }
     <bean id="car2" class="com.sitong.instantiationbean.StaticFactory" factory-method="createCar"></bean>

    方法三:实例工厂

    public class InstanceFactory {
        public Car creatCar(){
            return  new Car(200,"Bens");
        }
    }
    <bean id="carFactory" class="com.sitong.instantiationbean.InstanceFactory"></bean>
    <bean id="car3" class="com.sitong.instantiationbean.Car" factory-bean="carFactory" factory-method="creatCar"></bean>

    2.管理Bean的生命周期:

    Bean的生命周期,有两个层面:

    A. BeanBean 的作用范围
    B. 实例化 BeanBean 所经历的一系列阶段

    与Bean的生命周期有关配置
    1. 设置 BeanBean 的作用范围(scope属性)
    2. 延迟初始化( lazy-init和default-lazy-init属性 )
    3. 初始化方法和销毁(init-method 和destroy-method属性 )

    A singleton (默认):在容器初始化时创建Bean,每次取到的是同一实例 
    B. prototype :在每次获取时创建 Bean

  • 相关阅读:
    C# DataGridView 与 datatable 之间数据传递
    C# 调用命令行命令 net use
    C# 链接 sql server 数据库字符串
    winform窗口关闭,进程没有关掉的解决办法
    select 中的逻辑判断 sql server
    C#中的abstract 类和方法!!!
    c# ComboBox绑定枚举
    C#与C++类型互转
    DllImport
    TCP三次握手四次挥手详解
  • 原文地址:https://www.cnblogs.com/SitongLiu/p/6530963.html
Copyright © 2011-2022 走看看