控制反转 & Ioc创建对象的基础方式

时间:2020-03-07
本文章向大家介绍控制反转 & Ioc创建对象的基础方式,主要包括控制反转 & Ioc创建对象的基础方式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

控制反转————

  • 控制:谁来控制对象的创建

传统应用程序对象是由程序本身控制创建的,使用Spring后,对象是由Spring来控制创建的(经由xml文件配置)

  • 反转:程序本身不再创建对象,而是反过来被动的接受对象(getBean(String id))

  • 依赖注入:就是利用set方法来进行注入的

所以,Ioc(控制反转)其实就是:对象由Spring来创建,管理,装配!

Ioc创建对象的方式(xml装配bean)

  1. 使用无参构造创建对象,然后调用set方法(底层)

        <bean id="user" class="com.woshi.pojo.User">
            <property name="name" value="张三"></property>
        </bean>
  2. 使用构造器,利用下标索引赋值(索引从0开始,存在歧义风险,类型正确的情况下可能把值付错)

     <bean id="user2" class="com.woshi.pojo.User">
            <constructor-arg index="0" value="李四"></constructor-arg>
        </bean>
  3. 使用构造器,通过参数类型赋值(存在歧义风险,如果由同类型的成员变量,会按顺序为他们赋值,提供的多余构造器需要的,会报错,少于没事,会赋给null,要是涉及到基础数据类型就会报错

        <bean id="user3" class="com.woshi.pojo.User">
            <constructor-arg type="java.lang.String" value="王五"></constructor-arg>
        </bean>
    
  4. 使用构造器,通过成员变量名称赋值(不容易有歧义)

        <bean id="user4" class="com.woshi.pojo.User">
            <constructor-arg name="name" value="刘六"></constructor-arg>
        </bean>

初级的装配bean的方法就以上4种,如果使用property来装配就不要干掉无参构造器,并且保证提供相应的set方法;

如果使用构造器来装配bean,就要提供相应的构造器(倒是不必提供set方法)

原文地址:https://www.cnblogs.com/woshi123/p/12436784.html