spring提供了两种给属性赋值的方式
- 1.通过属性的set方法
- 2.通过有参构造
1. 通过属性的set方法 ,给属性赋值
1.1 属性是基本类型(包装类) + String (很重要)
< property name=”属性名” value=”给属性赋的值”/>
<bean id="p1" class="com.macw.entity.Person" scope="singleton"> <!-- 使用property标签 情况1:通过属性的set方法给属性赋值,属性是基本类型或者String类型 name="类中的属性名" 要求:生成set方法 value="给属性赋的值" --> <property name="id" value="10"/> <property name="name" value="张三"/> </beans>
1.2 属性是自定义对象类型 (重要)
< property name=”属性名” ref=””/>
ref:references(引用)
如图所示:
Spring 分别给数组、List、Set、Map、Properties赋值:
如下:
<!-- 给List、Set、Map、Properties属性赋值 --> <property name="hobby"> <list> <value>吸烟</value> <value>喝酒</value> <value>烫头</value> </list> </property> <property name="phones"> <set> <value>11111</value> <value>22222</value> <value>33333</value> </set> </property> <property name="map1"> <map> <entry key="a1" value="哈哈"></entry> <entry key="a2" value="呵呵"></entry> <!-- 由于Map的key,value可以是object类型,所以entry标签提供了key-ref和value-ref 如果在类中map的类型是: private Map<String,Address> map1; . 那么给map存储的数据的时候就不能用value了,要用value-ref指向一个对象 --> <!--<entry key="a2" value-ref="address"></entry>--> </map> </property> <property name="prop"> <props> <prop key="x1">张三</prop> <prop key="x2">李四</prop> </props> </property> </bean>
2. 通过有参构造方法给属性赋值 (了解)
<bean id="address" class="com.macw.entity.Address"> <!-- 通过有参构造给属性赋值 index代表有参构造方法的第几个参数,默认是从0开始 --> <constructor-arg index="0" value="111"></constructor-arg> <constructor-arg index="1" value="河南郑州"></constructor-arg> <!-- <property name="id" value="111"></property> <property name="receiveName" value="河南郑州"></property> --> </bean>