1.针对不同类型的成员变量,在<property>标签,需要嵌套其他标签
2.jdk内置类型
1).8种基本类型+String
<value>roy</value>
2).数组
<property name="emails">
<list>
<value>sun@hfja.com.cn</value>
<value>ssafun@sfa.com.cn</value>
<value>wet@sfwwr.com.cn</value>
</list>
</property>
3).set集合:无序、不可重复的
<property>
<set>
<value>111111</value>
<value>222222</value>
</set>
</property>
4).List集合:有序、可重复的
<property>
<list>
<value>111111</value>
<value>222222</value>
</list>
</property>
5).Map集合
<map>
<entry>
<key><value>name</value></key>
<value>sun</value>
</entry>
<entry>
<key><value>id</value></key>
<value>1</value>
</entry>
</map>
6).properties
properties类型,特殊的map key=String,value=String,值只能是String
<props>
<prop key="key1">value1</prop>
<prop key="key2">value2</prop>
</props>
7).复杂的jdk类型(date)
需要自定义类型转换器
3.用户自定义类型
1.第一种方式:
a.为成员变量提供set、get方法
b.配置文件进行注入(赋值)
<bean id="userService" class="xxxx.UserServiceImpl">
<prpperty name="userDao">
<bean class="xxxx.UserServiceImpl"/>
</property>
</bean>
2.第二种方式:
a.第一种方式存在问题:
1 配置文件代码冗余
2 被注入的对象(UserDao),多次创建,浪费JVM内存资源
b.为成员变量提供set、get方法
c.配置文件种进行配置
<bean id="userDao" class="xxx.UserDaoImpl"></bean>
<bean id="userService" class="xxx.UserServiceImpl">
<property name="userDao">
<ref bean="userDao"/>
</property>
</bean>
3.set注入的简化方法
a.基于属性简化
JDK类型注入
<property name="name">
<value>suns</value>
</property>
<property name="name" value="suns">
注意:value属性只能简化8种基本类型+String 注入标签
用户自定义类型
<peoperty name="userDao">
<ref bean="userDao">
</peoperty>
<property name="userDao" ref="userDao"/>
b.基于p命名空间简化
JDK类型注入
<bean id="person" class="xxx.Person">
<property name="name">
<value>suns</value>
</property>
</bean>
<bean id="person" class="xxx.Persom" p:name="suns"/>
注意:value属性 只能简化 8种基本类型+String 注入标签
用户自定义类型
<bean id="userService" class="xxxx.UserServiceImpl">
<property name="userDao">
<ref bean="userDao">
</property>
</bean>
<bean id="userService" class="xxxx.UserServiceImpl" p:userDao-ref="userDao"/>
关注公众号:空谷有来人,秩序更新,敬请期待!