spring中Bean的注入参数详解

时间:2022-10-27 19:45:06

字面值
    一般指可用字符串表示的值,这些值可以通过<value>元素标签进行注入。在默认情况下,基本数据类型及其封装类、String等类型都可以采取字面值注入的方式,Spring容器在内部为字面值提供了编辑器,它可以将以字符串表示的字面值转换为内部变量的相应类型。
    配置信息:
    <bean id="car" class="com.luxl.domain.Car">
        <property name="maxSpeed">
            <value>200</value>
        </property>
        <property name="brand">
            <value><![CDATA[红旗&CA72]]></value>
        </property>
    </bean>
    注:由于brand属性值包含一个XML的特殊符号,因此特意在属性值外添加一个XML特殊处理标签<![CDATA[]]>,作用是让XML解析器将标签中的字符串当作普通的文本对待,防止某些字符串对XML格式造成破坏。

引用其他Bean
    Spring IoC容器中定义的Bean可以相互作用。IoC容器则充当媒介。
    引用方式:<ref bean="car"></ref>
    <ref>元素可以通过以下3个属性引用容器中的其他Bean。
    1)bean:可以引用同一容器或父容器的Bean;
    2)local:只能引用同一配置文件中定义的Bean,可以自动检查合法性。
    3)parent:引用父容器中的Bean,如<ref parent="car">的配置说明car的Bean是父容器中的Bean。

集合类型属性
    (1)List:配置信息:
    <property name="favorites">
        <list>
            <value>abc</value>
            <value>def</value>
            <value>ghi</value>
        </list>
    </property>
    (2)Map:配置信息:
    <property name="jobs">
        <map>
            <entry>
                <key><value>AM</value></key>
                <value>回见客户</value>
            </entry>
            <entry>
                ...
            </entry>
        </map>
    </property>
    (3)Property:配置信息:
    <property name="mails">
        <props>
            <prop key="jobMail">www.baidu.com</prop>
            ....
        </props>
    </property>

自动装配
    <beans>元素标签中的default-autowire属性可以配置全局自动匹配,默认值是no,表示不启用自动装配,其他几个可选配置值分别是byName、byType、constructor和autodetect。在<beans>中定义的自动装配策略可以被<bean>的自动装配策略覆盖。