依赖注入——特殊类型注入之为对象属性赋值

文章介绍了在Spring框架中,如何通过XML配置进行bean的注入,包括引用外部bean、定义内部bean以及进行级联属性赋值的方法。外部bean是引用已定义的bean,内部bean则是在目标bean内部直接定义属性bean,级联属性赋值允许直接修改嵌套对象的属性。
摘要由CSDN通过智能技术生成

1.引用外部bean

外部bean就是将定义在外面的bean通过ref引入

    <bean id="dept" class="com.itguigu.spring6.iocxml.ditest.Dept" >
<!-- 在类里面有很多属性,现在对属性进行注入-->
        <property name="dname" value="开发部"></property>
    </bean>
    <bean id="emp" class="com.itguigu.spring6.iocxml.ditest.Emp" >
        <!-- 普通属性进行注入-->
        <property name="ename" value="Lucy"></property>
        <property name="age" value="30"></property>
        
        <!-- 注入对象类型属性 private Dept dept, 在emp的bean里面,引入部门dept的bean对象
        ref要保持与引入的bean的id值保持一致-->
        
        <property name="dept" ref="dept"></property>

    </bean>

2.内部bean

就是将本身定义在外部的对象属性bean直接定义在要注入的对象里面


    第二种方式,内部bean注入,内部进行定义
    
    <bean id="dept2" class="com.itguigu.spring6.iocxml.ditest.Dept" >
        <property name="dname" value="研发部"></property>
    </bean>
    
    <bean id="emp2" class="com.itguigu.spring6.iocxml.ditest.Emp" >
	 <!--先设置两个普通的属性-->
        <property name="ename" value="Mary"></property>
        <property name="age" value="20"></property>
        
        <!-- 使用内部bean进行注入-->
        <property name="dept">
            <bean id="dept2" class="com.itguigu.spring6.iocxml.ditest.Dept" >
                <property name="dname" value="研发部"></property>
            </bean>
        </property>
    </bean>

3.级联属性赋值

<!--    第三种方式,级联赋值-->
    <bean id="dept3" class="com.itguigu.spring6.iocxml.ditest.Dept">
        <property name="dname" value="财务部"></property>

    </bean>
    <bean id="emp3" class="com.itguigu.spring6.iocxml.ditest.Emp">
        <property name="ename" value="Tom"></property>
        <property name="age" value="25"></property>
        <property name="dept" ref="dept3"></property>
        <property name="dept.dname" value="测试部"></property>
    </bean>
</beans>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值