1、注入简单值
简单值包括基本类型+String。
<bean id="s1" class="com.etc.entity.Student">
<property name="no" value="2015001001"></property>
<property name="name" value="张三"></property>
<property name="gender" value="男"></property>
</bean>
2、引用其他的Bean
Teacher类的name字段增加getter和setter
<bean id="s1" class="com.etc.entity.Student">
<property name="no" value="2015001001"></property>
<property name="name" value="张三"></property>
<property name="gender" value="男"></property>
<property name="teacher" ref="t1"></property>
</bean>
<bean id="t1" class="com.etc.entity.Teacher">
<property name="name" value="老师" />
</bean>
3、使用p命名空间装配属性
在通过set方法给bean注入关联项时是通过property元素来定义的,有了p命名空间,我们可以简单的把它们当做bean的一个属性来进行定义。
使用p命名空间时需要先声明使用对应的命名空间,即在beans元素上加入以下代码
xmlns:p="http://www.springframework.org/schema/p"
使用p命名空间装配属性,可以简化配置:
<bean id="t1" class="com.etc.entity.Teacher">
<property name="name" value="老师" />
</bean>
<bean id="s1" class="com.etc.entity.Student"
p:no="2015001002" p:name="李四" p:gender="男" p:teacher-ref="t1" />
4、装配集合
Spring不仅能注入简单类型数据,还能注入集合(Collection、无序集合Set、有序列表List)类型、数组(Array)类型、字典(Map)类型数据、Properties类型数据。
List:Student类中增加以下字段并生成getter和setter:
private List<String> hobby;
方式1:
<bean id="t1" class="com.etc.entity.Teacher">
<property name="name" value="老师" />
</bean>
<bean id="s1" class="com.etc.entity.Student">
<property name="no" value="2015001001"></property>
<property name="name" value="张三"></property>
<property name="gender" value="男"></property>
<property name="teacher" ref="t1"></property>
<property name="hobby">
<list>
<value>篮球</value>
<value>足球</value>
<value>乒乓球</value>
</list>
</property>
</bean>
存在的问题,无法复用。
方式2:beans中引入util空间
xmlns:util="http://www.springframework.org/schema/util"
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
<util:list id="hobby">
<value>唱歌</value>
<value>跳舞</value>
<value>打游戏</value>
</util:list>
<bean id="s2" class="com.etc.entity.Student"
p:no="2015001002" p:name="李四"
p:gender="男" p:hobby-ref="hobby"
p:teacher-ref="t1" >
</bean>
Map:Student类中增加以下字段并生成getter和setter:
private Map<String,String> courses;
方式1:
<bean id="s1" class="com.etc.entity.Student">
<property name="no" value="2015001001"></property>
<property name="name" value="张三"></property>
<property name="gender" value="男"></property>
<property name="teacher" ref="t1"></property>
<property name="courses">
<map>
<entry key="Java" value="Java学习"/>
<entry key="MySQL" value="MySQL学习"/>
</map>
</property>
</bean>
存在的问题,无法复用。
方式2:引入util空间
<util:map id="courses">
<entry key="Java" value="Java学习"/>
<entry key="MySQL" value="MySQL学习"/>
</util:map>
<bean id="s2" class="com.etc.entity.Student"
p:no="2015001002" p:name="李四"
p:gender="男" p:courses-ref="courses"
p:teacher-ref="t1" >
</bean>
5、装配空值
在Student类中增加age字段,设定初值为18。
private Integer age = 18;
将其值修改为null
<bean id="s5" class="com.etc.entity.Student">
<property name="no" value="2015001001"></property>
<property name="name" value="张三"></property>
<property name="age"><null/></property>
</bean>