📅  最后修改于: 2023-12-03 15:35:02.795000             🧑  作者: Mango
在使用Spring依赖注入的过程中,我们经常需要在构造函数中注入集合类型的变量。通常,如果这个集合类型是字符串类型,那么注入过程会非常简单,我们只需要在构造函数参数列表中使用List<String>
或Set<String>
等类型定义即可。但是,如果这个集合类型不是字符串类型,那么注入过程就变得稍微有些麻烦。本文将介绍如何在Spring中注入非字符串集合类型的变量。
首先,我们来看一下非字符串集合类型有哪些。常用的非字符串集合类型有:
List<Object>
Set<Object>
Map<KeyType, ValueType>
Collection<Object>
这些集合类型中的元素可以是任何类型,比如Integer、Double、自定义对象等等。
使用Spring注入非字符串集合类型的变量是非常简单的。我们依然可以在构造函数中使用List<Object>
、Set<Object>
、Map<KeyType, ValueType>
等类型定义,只需要在配置文件中对应的位置使用逗号分隔符分开每个元素即可。下面是一个例子。
public class MyClass {
private List<Integer> myList;
public MyClass(List<Integer> myList) {
this.myList = myList;
}
public List<Integer> getMyList() {
return myList;
}
}
<bean id="myClass" class="com.example.MyClass">
<constructor-arg>
<list>
<value>1</value>
<value>2</value>
<value>3</value>
</list>
</constructor-arg>
</bean>
在上面的例子中,我们定义了一个MyClass
类,它的构造函数中有一个List<Integer>
类型的参数。在配置文件中,我们使用<list>
元素来定义这个集合类型,并在其中用<value>
元素为其添加了三个整数元素。
类似地,我们可以使用<set>
元素来定义Set<Object>
类型的集合,使用<map>
元素来定义Map<KeyType, ValueType>
类型的映射关系,使用<collection>
元素来定义任何类型的集合。
在本文中,我们介绍了如何在Spring中注入非字符串集合类型的变量。尽管和字符串集合类型不同,但是注入过程非常简单,只需要在配置文件中使用对应的标签和分隔符即可。