Spring Ioc —— 集合类型的依赖注入
集合类型
下面示例用到的Java类
public class Student {private String name;private int age;private String sex;private double height;private String address;private String phone;private Date birthday;private List<String> hobbies ;private List<Teacher> teachers;private Map<String, String> maps;
}public class Teacher {private String name;private String subject;
}
- List
-
List<String>
List中的元素是简单类型或简单类型的封装类(推荐第一种写法)<property name="hobbies"><list><value>football</value><value>basketball</value></list> </property>
<property name="hobbies" value=“football,basketball” />
-
List<Teacher>
List中的元素是对象类型(推荐第一种)<!-- 定义具体的Teacher bean --> <bean id="teacher1" class="com.hxj.ioc.bean.Teacher"><property name="name" value="张老师"/><property name="subject" value="数学"/> </bean><bean id="teacher2" class="com.hxj.ioc.bean.Teacher"><property name="name" value="李老师"/><property name="subject" value="英语"/> </bean><!-- 学生中调用 --> <property name="teachers"><list><ref bean="teacher1"/><ref bean="teacher2"/></list> </property>
<property name="teachers"><list><bean class="com.hxj.ioc.bean.Teacher"><property name="name" value="张老师"/><property name="subject" value="数学"/></bean><bean class="com.hxj.ioc.bean.Teacher"><property name="name" value="李老师"/><property name="subject" value="英语"/></bean></list> </property>
-
- Set
如果是Set和上面的List注入方式一样,只是标签改用set<property name="teachers"><set><ref bean="teacher1"/><ref bean="teacher2"/></set> </property>
- Map
- 基本的 Map 赋值方式
<property name="maps"><map><entry key="key1" value="value1"/><entry key="key2" value="value2"/></map> </property>
- 使用 key-ref 和 value-ref(适用于引用其他 Bean 作为键或值)
<property name="maps"><map><entry key-ref="someBeanAsKey" value-ref="someBeanAsValue"/></map> </property>
- 使用 properties 标签(适用于简单的键值对),注意:使用 方式时,键和值都必须是 String 类型。
<property name="maps"><props><prop key="key1">value1</prop><prop key="key2">value2</prop></props> </property>
- 基本的 Map 赋值方式