1、value元素 <value/>元素通过字符串来指定属性或构造器参数的值。 <bean id="myDataSource" detroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </proerpty> <property name="url"> <value>jdbc:mysql://localhost:3306/mydb</value> </property> <property name="username"> <vlaue>root</value> </property> </bean> 2、idref元素 idref元素用来将容器内其它bean的id传给<constructor-arg/>或<property/>元素,同时提供错误难功能。 <bean id="theTargetBean" class="..."/> <bean id="theClientBean" class="..."> <property name="targetName"> <idref bean="theTargetBean" /> </property> </bean> 等同于: <bean id="theTargetBean" class="..." /> <bean id="theClientBean" class="..."> <property name="targetName"> <value>theTargetBean</value> </property> </bean> 使用idref标记允许容器在部署时验证所被引用的bean是否存在。此外,如果被引用的bean在同一XML文件内,且bean名字就是bean id,那么可以使用local属性。 此属性允许XML解析器在解析XML文件时来对引用的bean进行验证。 <property name="targetName"> <idref local="theTargetBean" /> </property> 3、ref元素 形式一:<ref bean="someBean"> 这是最常见的形式是通过使用ref标记指定bean属性的目标bean,通过该标签可以引用同一容器或父容器内的任何bean(无论是否在同一XML文件中)。 XML‘bean’元素的值即可以是指定的bean的id值也可以是其name值。 形式二:<ref local="someBean"> 使用ref的local属性指定目标bean,它可以利用XML解析器来难所引用的bean是否存在同一文件中。local属性值必须是目标bean的id属性值。 形式三:<bean parent="someBean"> 通过使用ref的parent属性来引用当前窗口的父容器中的bean。parent属性值即可以是目标bean的id值,也可以是name属性值。 4、内部 bean: 所 谓内部bean(inner bean)是指在一个bean的<property/>或<constructor-arg/>中使用< bean/>元素定义的bean.内部bean不需要有id或name属性,即使有也会被窗口忽略. 内部bean总是匿名的且它们总是prototype模式的.同时将内部bean注入到包含该内部bean之外的bean是不可能的. <bean id="outer" class="..."> <property name="target"> <bean class="com.mycoompany.Person"> <property name="name" value="Fiona Apple"/> <property name="age" value="25"/> </bean> </property> </bean> 5、集合合并: 从Spring2.0开始,Spring IoC容器将支持集合的合并。父子集合元素合并后的值就是子集合中的最终结果,而且子集合中的元素值将覆盖父集合中的对应的值。 <beans> <bean id="parent" abstract="true" class="example.ComplexObject"> <property name="adminEmails"> <props> <prop key="administrator">administrator@somecompany.com</prop> <prop key="support">support@somecompany.com</prop> </props> </property> </bean> <bean id="child" parent="parent"> <property name="adminEmails"> <props merge="trur"> <prop key="sales">sales@somecompany.com</prop> <prop key="support">support@somecompany.co.uk</prop> </props> </property> </bean> </beans> 合并后内容: administrator=administrator@somecompany.com sales=sales@somecompany.com support=support@somecompany.co.uk list集合有排序功能,父bean的列表内容将排在子bean列表内容的前面; merge属性必须在继承的子bean中定义。 6、Nulls <null/>用于处理null值。Spring会把属性的空参数当作空字符串处理。 <bean class="ExampleBean"> <property name="email"> <value></value> </property> </bean> 等同于 excapleBean.setEamil(""); 而null值则可以使用<null/>元素来表示: <bean class="ExampleBean"> <property name="email"><null/></property> </bean> 7、简写: 针对常见的value值或bean的引用,Spring提供了简化格式用于替代<value/>和<ref/>元素。 <property/>、<constructor-arg/>、<entry/>元素都支持value属性,它可以用来替代内嵌的<value/>元素。 <property name="myProperty"> <value>hello</value> ===== <property name="myProperty" value="helo" /> </property> <constructor-arg> <value>hello</value> ===== <constructor-arg value="hello" /> </construtctor-arg> <entry key="myKey"> <value>hello</value> ===== <entry key="myKey" value="hello" /> </entry> <property/>和<constructor-arg/>支持类似的简写属性ref,它可以替找整个内嵌的</ref>元素。 <property name="myProperty"> <ref bean="myBean"> ===== <property name="myProperty" ref="myBean" /> </property> <constructor-arg> <ref bean="myBean"> ===== <constructor-arg ref="myBean" /> </constructor-arg> 切记:尽管存在等同于<ref bean="xxx" >元素的简写形式,但并没有<ref local="xxx">的简写形式。 map中的entry元素的简写形式为key/key-ref和value/value-ref属性。 <entry> <key> <ref bean="myKeyBean" /> ===== <entry key-ref="myKeyBean" value-ref="myValueBean" /> </key> <ref bean="myValueBean" /> </entry> 8、组合属性名称 当设置bean的组合属性时,除了最后一下属性外,只要其他属性值不为null,组合或嵌套属性名是完全合法的。 <bean id="foo" class="foo.Bar"> <property name="fred.bob.sammy" value="123" /> </bean> 感谢原文作者的用心编写 原文链接:https://zhidao.baidu.com/question/551804619.html
Spring中xml的配置
最新推荐文章于 2023-07-26 23:24:39 发布