<?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"
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">
<!-- 1、根据构造器参数顺序注入 -->
<bean id="person1" class="com.founder.model.Person">
<constructor-arg value="111" index="0"/>
<constructor-arg value="lily" index="1"/>
<constructor-arg value="0" index="2"/>
</bean>
<!-- 2、根据构造器参数的类型注入 -->
<bean id="person2" class="com.founder.model.Person">
<constructor-arg value="222" type="java.lang.String"/>
<constructor-arg value="zhangsan" type="java.lang.String"/>
<constructor-arg value="1" type="int"/>
</bean>
<!-- 3、根据构造器参数的顺序和类型注入 -->
<bean id="person3" class="com.founder.model.Person">
<constructor-arg value="333" type="java.lang.String"/>
<constructor-arg value="lisi" type="java.lang.String"/>
<constructor-arg value="1" type="int"/>
</bean>
<!-- 4、根据属性注入 -->
<bean id="person4" class="com.fonder.model.Person">
<property name="id" value="444"/>
<property name="name" value="问问"/>
<property name="sex" value="1"/>
</bean>
<!-- 部门,独立的bean -->
<bean id="dep1" class="com.founder.model.Department">
<property name="id" value="11"></property>
<property name="name" value="研发部"></property>
<property name="manager" value="张三"></property>
</bean>
<!-- 人员部门通过引用注入 -->
<bean id="person5" class="com.founder.model.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="555"/>
<property name="name">
<!-- 特殊字符值赋值 -->
<value><![CDATA[!9@#]]></value>
</property>
<property name="sex" value="0"/>
<!-- 通过引用注入 -->
<property name="department" ref="dep1"></property>
</bean>
<!-- 人员部门通过内部Bean注入 -->
<bean id="person6" class="com.founder.model.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="666"/>
<property name="name" value="更换"/>
<property name="sex" value="1"/>
<!-- 通过内部bean注入 -->
<property name="department">
<!-- 此处无需写id-因为已经确定是person5的内部bean,再其内部已经是唯一的 -->
<bean class="com.founder.model.Department">
<!-- 这里通过属性或构造方式注入 -->
<property name="id" value="22"></property>
<property name="name" value="运维部"></property>
<property name="manager" value="李四"></property>
</bean>
</property>
</bean>
<!-- 级联属性方法设置(注意:不许保证对应成员变量已经被set,否则为null会抛异常) -->
<!-- 人员Person - 部门 - 公司 -->
<bean id="person7" class="com.founder.model.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="777"/>
<property name="name" value="多个"/>
<property name="sex" value="0"/>
<property name="department" ref="dep1" />
<property name="department.id" value="55"></property>
<property name="department.name" value="哈哈哈"></property>
<property name="department.manager" value="嘎嘎嘎"></property>
<!-- 此处保证company也被new或被通过属性已经被注入
<property name="department.company.id" value="aaa"></property>
<property name="department.company.name" value="百度"></property>
<property name="department.company.addr" value="北京上地九街"></property>
-->
</bean>
<!-- -->
<bean id="c1" class="com.founder.collect.Contact">
<property name="id" value="c1"></property>
<property name="type" value="0"></property>
<property name="number" value="lixiang6153@126.com"></property>
</bean>
<bean id="c2" class="com.founder.collect.Contact">
<property name="id" value="c2"></property>
<property name="type" value="1"></property>
<property name="number" value="941415509"></property>
</bean>
<!-- 集合类型注入 -->
<bean id="p1" class="com.founder.collect.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="p1"/>
<property name="name" value="dsdf"/>
<property name="sex" value="0"/>
<property name="contacts">
<list>
<ref bean="c1"/>
<ref bean="c2"/>
<bean id="c3" class="com.founder.collect.Contact">
<property name="id" value="c3"></property>
<property name="type" value="2"></property>
<property name="number" value="lixiang6153"></property>
</bean>
</list>
</property>
</bean>
<!-- 集合类型注入 -->
<bean id="p2" class="com.founder.collect.NewPerson">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="p2"/>
<property name="name" value="ddd"/>
<property name="sex" value="1"/>
<property name="contacts">
<map>
<entry key="mail" value-ref="c1"></entry>
<entry key="qq" value-ref="c2"></entry>
</map>
</property>
</bean>
<!-- Properties赋值 -->
<bean id="datasource" class="com.founder.collect.DataSource">
<property name="properties">
<props>
<prop key="driver">com.mysql.jdbc.Driver</prop>
<prop key="url">jdbc:mysql://localhost:3306/testDB</prop>
<prop key="username">root</prop>
<prop key="password">123456</prop>
</props>
</property>
</bean>
<!-- 配置单例的集合bean,以供多个bean进行引用,需要导入Util命名 空间 -->
<util:list id="contacts">
<ref bean="c1"/>
<ref bean="c2"/>
</util:list>
<!-- 引用单例集合bean -->
<bean id="p3" class="com.founder.collect.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="p1"/>
<property name="name" value="dsdf"/>
<property name="sex" value="0"/>
<property name="contacts" ref="contacts"/>
</bean>
</beans>
<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"
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">
<!-- 1、根据构造器参数顺序注入 -->
<bean id="person1" class="com.founder.model.Person">
<constructor-arg value="111" index="0"/>
<constructor-arg value="lily" index="1"/>
<constructor-arg value="0" index="2"/>
</bean>
<!-- 2、根据构造器参数的类型注入 -->
<bean id="person2" class="com.founder.model.Person">
<constructor-arg value="222" type="java.lang.String"/>
<constructor-arg value="zhangsan" type="java.lang.String"/>
<constructor-arg value="1" type="int"/>
</bean>
<!-- 3、根据构造器参数的顺序和类型注入 -->
<bean id="person3" class="com.founder.model.Person">
<constructor-arg value="333" type="java.lang.String"/>
<constructor-arg value="lisi" type="java.lang.String"/>
<constructor-arg value="1" type="int"/>
</bean>
<!-- 4、根据属性注入 -->
<bean id="person4" class="com.fonder.model.Person">
<property name="id" value="444"/>
<property name="name" value="问问"/>
<property name="sex" value="1"/>
</bean>
<!-- 部门,独立的bean -->
<bean id="dep1" class="com.founder.model.Department">
<property name="id" value="11"></property>
<property name="name" value="研发部"></property>
<property name="manager" value="张三"></property>
</bean>
<!-- 人员部门通过引用注入 -->
<bean id="person5" class="com.founder.model.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="555"/>
<property name="name">
<!-- 特殊字符值赋值 -->
<value><![CDATA[!9@#]]></value>
</property>
<property name="sex" value="0"/>
<!-- 通过引用注入 -->
<property name="department" ref="dep1"></property>
</bean>
<!-- 人员部门通过内部Bean注入 -->
<bean id="person6" class="com.founder.model.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="666"/>
<property name="name" value="更换"/>
<property name="sex" value="1"/>
<!-- 通过内部bean注入 -->
<property name="department">
<!-- 此处无需写id-因为已经确定是person5的内部bean,再其内部已经是唯一的 -->
<bean class="com.founder.model.Department">
<!-- 这里通过属性或构造方式注入 -->
<property name="id" value="22"></property>
<property name="name" value="运维部"></property>
<property name="manager" value="李四"></property>
</bean>
</property>
</bean>
<!-- 级联属性方法设置(注意:不许保证对应成员变量已经被set,否则为null会抛异常) -->
<!-- 人员Person - 部门 - 公司 -->
<bean id="person7" class="com.founder.model.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="777"/>
<property name="name" value="多个"/>
<property name="sex" value="0"/>
<property name="department" ref="dep1" />
<property name="department.id" value="55"></property>
<property name="department.name" value="哈哈哈"></property>
<property name="department.manager" value="嘎嘎嘎"></property>
<!-- 此处保证company也被new或被通过属性已经被注入
<property name="department.company.id" value="aaa"></property>
<property name="department.company.name" value="百度"></property>
<property name="department.company.addr" value="北京上地九街"></property>
-->
</bean>
<!-- -->
<bean id="c1" class="com.founder.collect.Contact">
<property name="id" value="c1"></property>
<property name="type" value="0"></property>
<property name="number" value="lixiang6153@126.com"></property>
</bean>
<bean id="c2" class="com.founder.collect.Contact">
<property name="id" value="c2"></property>
<property name="type" value="1"></property>
<property name="number" value="941415509"></property>
</bean>
<!-- 集合类型注入 -->
<bean id="p1" class="com.founder.collect.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="p1"/>
<property name="name" value="dsdf"/>
<property name="sex" value="0"/>
<property name="contacts">
<list>
<ref bean="c1"/>
<ref bean="c2"/>
<bean id="c3" class="com.founder.collect.Contact">
<property name="id" value="c3"></property>
<property name="type" value="2"></property>
<property name="number" value="lixiang6153"></property>
</bean>
</list>
</property>
</bean>
<!-- 集合类型注入 -->
<bean id="p2" class="com.founder.collect.NewPerson">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="p2"/>
<property name="name" value="ddd"/>
<property name="sex" value="1"/>
<property name="contacts">
<map>
<entry key="mail" value-ref="c1"></entry>
<entry key="qq" value-ref="c2"></entry>
</map>
</property>
</bean>
<!-- Properties赋值 -->
<bean id="datasource" class="com.founder.collect.DataSource">
<property name="properties">
<props>
<prop key="driver">com.mysql.jdbc.Driver</prop>
<prop key="url">jdbc:mysql://localhost:3306/testDB</prop>
<prop key="username">root</prop>
<prop key="password">123456</prop>
</props>
</property>
</bean>
<!-- 配置单例的集合bean,以供多个bean进行引用,需要导入Util命名 空间 -->
<util:list id="contacts">
<ref bean="c1"/>
<ref bean="c2"/>
</util:list>
<!-- 引用单例集合bean -->
<bean id="p3" class="com.founder.collect.Person">
<!-- 基本属性的通过属性注入 -->
<property name="id" value="p1"/>
<property name="name" value="dsdf"/>
<property name="sex" value="0"/>
<property name="contacts" ref="contacts"/>
</bean>
</beans>