灵活配置 Spring 集合:List、Set、Map、Properties 详解


在 Spring 中,我们可以使用 XML 或注解来配置集合类型(List、Set、Map、Properties)。这些集合类型可以用来管理一组相似的对象或键值对,并且可以方便地在 Spring 应用程序中使用。

1. 配置 List

使用 <list> 元素来配置 List 类型的集合:

<bean id="myBean" class="com.example.MyBean">
    <property name="myList">
        <list>
            <value>value1</value>
            <value>value2</value>
            <value>value3</value>
        </list>
    </property>
</bean>
public class MyBean {
    private List<String> myList;

    // getter 和 setter 方法
}

2. 配置 Set

使用 <set> 元素来配置 Set 类型的集合:

<bean id="myBean" class="com.example.MyBean">
    <property name="mySet">
        <set>
            <value>value1</value>
            <value>value2</value>
            <value>value3</value>
        </set>
    </property>
</bean>
public class MyBean {
    private Set<String> mySet;

    // getter 和 setter 方法
}

3. 配置 Map

使用 <map> 元素来配置 Map 类型的集合,每个 <entry> 元素定义一个键值对:

<bean id="myBean" class="com.example.MyBean">
    <property name="myMap">
        <map>
            <entry key="key1" value="value1"/>
            <entry key="key2" value="value2"/>
            <entry key="key3" value="value3"/>
        </map>
    </property>
</bean>
public class MyBean {
    private Map<String, String> myMap;

    // getter 和 setter 方法
}

4. 配置 Properties

使用 <props> 元素来配置 Properties 类型的集合,每个 <prop> 元素定义一个键值对:

<bean id="myBean" class="com.example.MyBean">
    <property name="myProperties">
        <props>
            <prop key="key1">value1</prop>
            <prop key="key2">value2</prop>
            <prop key="key3">value3</prop>
        </props>
    </property>
</bean>
public class MyBean {
    private Properties myProperties;

    // getter 和 setter 方法
}

5. 注解配置

除了 XML 配置外,我们还可以使用注解来配置集合类型。例如,使用 @Value@ConfigurationProperties 注解来配置 List、Set、Map 和 Properties 类型的集合。

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyBean {
    @Value("${my.list}")
    private List<String> myList;

    @Value("${my.set}")
    private Set<String> mySet;

    @Value("#{${my.map}}")
    private Map<String, String> myMap;

    @Value("#{${my.properties}}")
    private Properties myProperties;

    // getter 和 setter 方法
}
my.list=value1,value2,value3
my.set=value1,value2,value3
my.map={key1:value1, key2:value2, key3:value3}
my.properties={key1=value1, key2=value2, key3=value3}

使用注解配置更加简洁和灵活,但需要确保配置正确且可维护。

以上是使用 Spring 配置集合类型的基本方法。根据你的项目需求和个人偏好,选择适合你的配置方式。


原文链接:codingdict.net