Spring入门-----5IOC创建对象的方式

Posted 我永远信仰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring入门-----5IOC创建对象的方式相关的知识,希望对你有一定的参考价值。

Spring的xml配置,applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--bean标签
        id = 变量名
        class = new 的对象
        property 相当于给对象中的属性设置一个值
    -->

    <!--无参构造创建-->
    <!--<bean id="user" class="com.yong.bean.User">
        <property name="name" value="帅比"/>
    </bean>-->

    <!--有参实现的三种-->
    <!--1.下标赋值-->
    <!--<bean id="user" class="com.yong.bean.User">
        <constructor-arg index="0" value="下标赋值"/>
    </bean>-->

    <!--2.类型赋值 ,不建议使用,类型一样会出现问题-->
    <!--<bean id="user" class="com.yong.bean.User">
        <constructor-arg type="java.lang.String" value="类型赋值"/>
    </bean>-->


    <bean id="user" class="com.yong.bean.User">
        <constructor-arg name="name" value="参数名"/>
    </bean>

    <bean id="student" class="com.yong.bean.Student">

    </bean>

    <bean id="mysqlImpl" class="com.yong.dao.UserDaoMysqlImpl"/>
    <bean id="oracleImpl" class="com.yong.dao.UserDaoOracle"/>
    <bean id="defaultImpl" class="com.yong.dao.UserDaoImpl"/>

    <!--
        ref :引用Spring 容器中创建好的对象
        value:具体的值,基本数据类型
    -->
    <bean id="userServiceImpl" class="com.yong.service.UserServiceImpl">
        <property name="userDao" ref="mysqlImpl"/>
    </bean>
</beans>

1.使用无参构造创建,默认的。如果不进行修改,且无参构造被干掉(即只有有参构造),会报错。

  • 默认无参构造

    <!--无参构造创建-->
        <bean id="user" class="com.yong.bean.User">
            <property name="name" value="帅比"/>
        </bean>
    

2.假设使用有参构造创建对象,三种方式

有参:

  • 下标赋值
<!--下标赋值-->
    <bean id="user" class="com.yong.bean.User">
        <constructor-arg index="0" value="下标"/>
    </bean>
  • 类型赋值 (不建议使用)
<!--类型赋值 ,类型一样会出现问题-->
    <bean id="user" class="com.yong.bean.User">
        <constructor-arg type="java.lang.String" value="类型赋值"/>
    </bean>
  • 参数名赋值 (推荐使用)

    <bean id="user" class="com.yong.bean.User">
            <constructor-arg name="name" value="参数名"/>
        </bean>
    
    

总结:在配置文件加载的时候,容器中管理的对象就已经被初始化了!

以上是关于Spring入门-----5IOC创建对象的方式的主要内容,如果未能解决你的问题,请参考以下文章

Spring 5IOC 容器

Spring5IOC源码解析

Spring5IOC源码解析

Spring5IOC源码解析

Spring5框架 笔记总结

Spring5框架 笔记总结