<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="foo" class="com.spring.foo" singleton="false" init-method="init" destroy-method="destroy"/> <bean id="bar" class="com.spring.bar"> <property name="name"><value>Foo</value></property> <property name="bar"><ref bean="bar"/></property> <property name="barList"> <list> <value>Foo</value> <ref bean="bar"/> </list> </property> <property name="fooSet"> <set> <value>Foo</value> <ref bean="bar"/> </set> </property> <property name="keyMap"> <map> <entry key="k1"> <value>Foo</value> </entry> <entry key="k1"> <ref bean="bar"/> </entry> </map> </property> <property name="props"> <props> <prop key="p1">1111</prop> <prop key="p2">2222</prop> </props> </property> <property name="nullValue"><null/></property> </bean> <bean id="dependencyInjection" class="com.spring.constructInjection"> <constructor-arg index="0"> <value>42</value> </constructor-arg> <constructor-arg index="1"> <ref bean="bar" /> </constructor-arg> </bean> <bean id="dependencyInjection1" class="com.spring.constructInjection"> <constructor-arg type="java.lang.String"> <value>www.cl.com</value> </constructor-arg> <constructor-arg type="java.net.URL"> <value>www.cl1.com</value> </constructor-arg> </bean> <!--autowire--> <bean id="autowire" class="com.spring.foo1" autowire="autowire type"> </bean> </beans>
1.单实例(缺省)与原型bean : singleton 为true 单实例模式,通过getBean或者装配只能得到同一实例singleton 为false 原型模式,请求bean返回不同实例
2.实例化时调用init-method, 删除实例之前调用destroy-method
3.依赖注入 set 注入,构造器注入 各种类型包括map,list,set,props.. 构造函数注入,用以区分不确定性的属性有 index, type
4.自动装配 autowire type有byName,byType,constructor,autodetect。