<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
<bean id="helloWord" class="cn.zzuli.spring.beans.HelloWorld">
<property name = "name1" value = "Spring"></property>
</bean>
<!-- index and type 可以标识项 -->
<bean id = "car" class = "cn.zzuli.spring.beans.Car">
<constructor-arg value = "Audi" index="0"></constructor-arg>
<constructor-arg value = "shanghai" index="1"></constructor-arg>
<constructor-arg value = "200000" type="double"></constructor-arg>
</bean>
<!-- CDATA[]包裹起来可以实现字符串使用<>字符 -->
<bean id = "car2" class = "cn.zzuli.spring.beans.Car">
<constructor-arg value ="booma" type="java.lang.String"></constructor-arg>
<constructor-arg type="java.lang.String">
<value><![CDATA[<shanghai>]]></value>
</constructor-arg>
<constructor-arg type="int">
<value>150</value>
</constructor-arg>
</bean>
<bean id = "person" class="cn.zzuli.spring.beans.Person">
<property name="name" value="Tom"></property>
<property name="id" value="01"></property>
<!--<property name="car" ref="car2"></property> -->
<!-- property 的ref属性建立链接引用关系 -->
<!--
<property name="car" >
<ref bean = "car2"/>
</property>
-->
<!-- 内部bean 不能被外部bean引用-->
<property name="car">
<bean class="cn.zzuli.spring.beans.Car">
<constructor-arg value="Ford"></constructor-arg>
<constructor-arg value="Changan"></constructor-arg>
<constructor-arg value="2000000"></constructor-arg>
</bean>
</property>
</bean>
<bean id ="person2" class="cn.zzuli.spring.beans.Person">
<constructor-arg value="Jery"></constructor-arg>
<constructor-arg value="02"></constructor-arg>
<constructor-arg ref="car"></constructor-arg>
<!-- 设置null值 -->
<!--
<constructor-arg><null/></constructor-arg>
-->
<!-- 为级联属性赋值 ,属性要先初始化后才能为其赋值,否则会有异常 -->
<property name="car.maxSpeed" value ="239"></property>
</bean>
<bean id = "person3" class="cn.zzuli.spring.beans.collection.Person">
<property name="name" value="lola"></property>
<property name="id" value="03"></property>
<!-- 使用List节点为list属性赋值 -->
<property name="cars">
<list>
<ref bean="car"/>
<ref bean="car2"/>
<bean class="cn.zzuli.spring.beans.Car">
<constructor-arg value="ford"></constructor-arg>
<constructor-arg value="beijing"></constructor-arg>
<constructor-arg value="251" type="int"></constructor-arg>
</bean>
</list>
</property>
</bean>
<bean id = "newPerson" class="cn.zzuli.spring.beans.collection.NewPerson">
<property name = "name" value="tomi"></property>
<property name = "id" value="04"></property>
<!-- 使用 Map 节点及entry子节点 配置map类型成员变量 -->
<property name = "cars">
<map>
<entry key="AA" value-ref="car"></entry>
<entry key="BB" value-ref="car2"></entry>
</map>
</property>
</bean>
<!-- 配置properties属性 -->
<bean id="dataSource" class="cn.zzuli.spring.beans.collection.DataSource">
<property name="properties">
<props>
<prop key="user">root</prop>
<prop key="password">123</prop>
<prop key="jdbcUrl">jdbc:mysql:///test</prop>
<prop key="driverClass">com.mysql.jdbc.cj.Driver</prop>
</props>
</property>
</bean>
<!-- 配置 单例的集合bean 以供多个bean进行引用,共多个bean共享,需要导入util命名空间 -->
<util:list id="cars">
<ref bean="car"/>
<ref bean="car2"/>
</util:list>
<bean id="person4" class="cn.zzuli.spring.beans.collection.Person">
<property name="name" value="jack"></property>
<property name="id" value="03"></property>
<property name="cars" ref="cars"></property>
</bean>
<!-- 通过p 命名空间对bean的属性赋值, 比传统的方法更加方便-->
<bean id="person5" class="cn.zzuli.spring.beans.collection.Person"
p:id="05" p:name="Queen" p:cars-ref="cars"></bean>
</beans>