spring框架的设值注入以及构造注入

声明Student对象
   注入:就是赋值的意思
   简单类型:spring中规定Java中的基本数据类型(以及包装类)和String都是简单数据类型
   di:给属性赋值
   1.set注入(设值注入):spring调用类的set方法,可以在set方法中完成属性赋值
       1)简单类型的set注入
       <bean id="xx" class="yyy">
           <property name="属性名字" value="此属性的值"/>
           一个property只能给一个属性赋值  多个属性需要多个property赋值
       </bean>

   2)引用类型的set注入:spring调用类的set方法
   <bean id="xxx" class="yyy">
       <property name="属性名称" ref="bean的id(对象的名称)"  />
   </bean>

   3)构造注入:spring调用有参构造方法,在创建对象的同时,在构造方法中给属性赋值。
       构造注入使用:<constructor-arg> 标签
       <constructor-arg> 标签:一个<constructor-arg>表示构造方法的一个参数。
       <constructor-arg> 标签属性:
           name: 表示构造方法的形参名
           index:表示构造方法的参数的位置,参数从左往右的位置是0,1,2的顺序
           value:构造方法的形参类型是简单类型,使用value
           ref:构造方法的形参类型是引用类型的,使用ref
    <!--使用name属性实现构造注入-->
    <bean id="myStudent" class="com.chen.ba03.Student">
        <constructor-arg name="name" value="张三" />
        <constructor-arg name="age" value="20" />
        <!--引用类型-->
        <constructor-arg name="school" ref="mySchool" />
    </bean>

    <!--使用index属性-->
    <bean id="myStudent2" class="com.chen.ba03.Student">
        <constructor-arg index="0" value="李四"/>
        <constructor-arg index="1" value="21"/>
        <constructor-arg index="2" ref="mySchool"/>
    </bean>

    <!--省略index-->
    <bean id="myStudent3" class="com.chen.ba03.Student">
        <constructor-arg value="王五"/>
        <constructor-arg value="18"/>
        <constructor-arg ref="mySchool"/>
    </bean>

    <!--创建file,使用构造注入-->
    <bean id="myFile" class="java.io.File">
        <constructor-arg name="parent" value="D:\java\IDEAwork\spring-course\ch01-hello-spring\readme.md" />
        <constructor-arg name="child" value="readme.md" />
    </bean>

    <!--声明school对象-->
    <bean id="mySchool" class="com.chen.ba03.School">
        <property name="name" value="清华大学" />
        <property name="address" value="北京" />
    </bean>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值