spring中Bean的注入参数详解
字面值
一般指可用字符串表示的值,这些值可以通过<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>的自动装配策略覆盖。