针对不同类型的成员变量,在<property>
标签,需要嵌套其他标签
<property>
xxxxx
</property>
1. JDK内置类型
1.1 string+8种基本类型
<value>wangze</value>
1.2 数组
<list>
<value>数组的第一项</value>
<value>数组的第二项</value>
<value>数组的第三项</value>
</list>
1.3 Set集合
不一定是value 此处用到value因为是有泛型
<set>
<value>11213213</value>
<value>11213653</value>
</set>
<set>
<ref bean
<set
</set>
1.4 List集合
<list>
<value>111111</value>
<value>222222</value>
</list>
<list>
<ref bean
<set
</list>
Map集合
注意: map -- entry -- keyy有特定的标签<key></key>值根据对应类型选择对应类型的标签
<map>
<entry>
<key><value>wangze</value></key>
<value>zhenshuai</value>
</entry>
</map>
<entry>
<key><value>chenyn</value></key>
<ref bean
</entry>
</map>
1.6 Properties
Properties 类型 特殊的Map key=string value=string
<props>
<prop key="key1">value1</prop>
<prop key="key2">value2</prop>
</props>
1.7复杂的jdk类型(Date)
需要程序员自定义类型转换器,处理。
2.用户自定义类型
2.1第一种方式
1. 为成员变量提供set get方法
2. 配置文件中进行注入(赋值)
<bean id="userService" class="xxxx.UserServiceImpl">
<property name="userDAO">
<bean class="xxx.UserDAOImpl"/>
</property>
</bean>
2.2第二种方式
- 第一种赋值方式存在的问题
1. 配置文件代码冗余
2. 被注入的对象(UserDAO),多次创建,浪费(JVM)内存资源
- 为成员变量提供set get方法
- 配置文件中进行配置
<bean id="userDAO" class="xxx.UserDAOImpl"/>
<bean id="userService" class="xxx.UserServiceImpl">
<property name="userDAO">
<ref bean="userDAO"/>
</property>
</bean>
-Spring4.x 废除了 <ref local=""/> 基本等效 <ref bean=""/>
Set注入的简化写法
3.1 基于属性简化
JDK类型注入
<property name="name">
<value>suns</value>
</property>
<property name="name" value="suns"/>
注意:value属性 只能简化 8种基本类型+String 注入标签
用户自定义类型
<property name="userDAO">
<ref bean="userDAO"/>
</property>
<property name="userDAO" ref="userDAO"/>
3.2 基于p命名空间简化
JDK类型注入
<bean id="person" class="xxxx.Person">
<property name="name">
<value>suns</value>
</property>
</bean>
<bean id="person" class="xxx.Person" p:name="suns"/>
注意:value属性 只能简化 8种基本类型+String 注入标签
用户自定义类型
<bean id="userService" class="xx.UserServiceImpl">
<property name="userDAO">
<ref bean="userDAO"/>
</property>
</bean>
<bean id="userService" class="xxx.UserServiceImpl" p:userDAO-ref="userDAO"/>