Spring DI

一、概述

        IOC(控制反转)负责对象的创建。

        本文介绍的DI(依赖注入),负责对象创建后,属性的赋值。通过xml的配置,代替写代码为对象属性赋值。

二、注入方法

2.1 set方法注入

2.1.1 Spring内置类型注入

        基本类型

        <property name="id" value="1"></property>

        list类型

        <property name="jobs">

                <list>

                    <value>上单</value>

                    <value>坦克</value>

                </list>

        </property>

        set类型

        <property name="set">

            <set>

                <value>沈腾</value>

                <value>贾玲</value>

            </set>

        </property>

        map类型

        <property name="map">

            <map>

                <entry key="1" value="蝙蝠侠"></entry>

                <entry key="2" value="雷神"></entry>

                <entry key="3" value="美国队长"></entry>

                <entry key="4" value="绿巨人"></entry>

            </map>

        </property>

        property类型

        <property name="prop">

            <props>

                <prop key="1">1</prop>

                <prop key="2">2</prop>

            </props>

        </property>

2.1.2 自定义类型注入

        <property name="dog" ref="dog"></property>

2.1.3 自定义类型注入,自动装配方法

配置全局自动装配

default-autowire="byName"

指定bean配置自动装配

<bean id="hero" class="com.dreamguard.domain.Hero" autowire="byName">

自动装配的两种方式

byName:根据javabean中需要注入的属性的名字 ,在spring容器中找对应id的<bean>将该<bean>的对象复制给 当前的属性

byType:根据javabean中需要注入的属性的类型,在spring容器中找对应class类型的<bean>将该<bean>的对象复制给 当前的属性

**byType方式 根据类型进行匹配,可能匹配到多个<bean>,此时会抛出异常。而byName是通过id来寻找<bean>,id没有重复,不会有这方面的问题,所以推荐使用byName方式

2.2 构造方法注入(不常用)

暂不介绍,可在给出的代码,了解使用


完整代码下载

        https://github.com/hailindai/SpringSample

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容