Spring IOC和DI (三)
创建对象的几种方式
调用无参数构造器
<bean id="user1" class="com.mattrix42.User"></bean>
调用有参数构造器
<bean id="str" class="java.lang.String">
<constructor-arg value="Jack"></constructor-arg>
</bean>
<!--创建user对象,且负责-->
<bean id="user" class="com.mattrix42.User">
<constructor-arg index="0" type="int" value="1000"></constructor-arg>
<constructor-arg index="1" type="String" value="Jack"></constructor-arg>
<!--<constructor-arg index="1" type="String" ref="str"></constructor-arg>-->
</bean>
工厂
-
静态方法
<bean id="" class="" factory-method=""></bean>
-
非静态方法
<bean id="factory" class=".."></bean> <bean id="" factory-bean="factory" factory-method="实例方法"></bean>
反射
处理对象的依赖关系
接受注入的set方法接受的参数建议使用接口,即使实现类变了方法也不用变
构造函数赋值
set 方法注入值
-
普通字段赋值
<bean id="user" class="com.matrix42.User"> <property name="id" value="1000"></property> <property name="name" value="Jack"></property> <!--也可以用ref--> </bean>
-
集合属性 (list/map/property)
<bean id="user" class="com.matrix42.User"> <property name="list"> <list> <value>cn</value> <value>usa</value> </list> </property> </bean>
<property name="list"> <map> <entry key="cn" value="China"></entry> <!-- 可以使用key-ref和value-ref --> </map> </property>
<!-- 装配null --> <property name="listnull"> <null/> </property>