首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Spring 集合類型 Bean 配置全攻略:Map、List、Set 與基本類型

     編輯:Java 綜合教學

Spring 集合類型 Bean 配置全攻略:Map、List、Set 與基本類型

在 Spring XML 配置中,常需將集合或基本類型直接定義為 Bean,供其他元件注入。本文匯總新舊兩代配置風格,助你快速選擇最適合的方式。

一、Map 類型

舊版(Spring 2.0+,無需 util 命名空間)

<bean id="emails" class="org.springframework.beans.factory.config.MapFactoryBean">
    <property name="sourceMap">
        <map>
            <entry key="pechorin" value="pechorin@hero.org"/>
            <entry key="raskolnikov" value="raskolnikov@slums.org"/>
            <entry key="stavrogin" value="stavrogin@gov.org"/>
            <entry key="porfiry" value="porfiry@gov.org"/>
        </map>
    </property>
</bean>

新版(推薦,需引入 util 命名空間)

<util:map id="emails" map-class="java.util.TreeMap">
    <entry key="pechorin" value="pechorin@hero.org"/>
    <entry key="raskolnikov" value="raskolnikov@slums.org"/>
    <entry key="stavrogin" value="stavrogin@gov.org"/>
    <entry key="porfiry" value="porfiry@gov.org"/>
</util:map>

灰色屬性(map-class、key-type、value-type)可省略,預設為 LinkedHashMap。

二、List 類型

舊版

<bean id="emails" class="org.springframework.beans.factory.config.ListFactoryBean">
    <property name="sourceList">
        <list>
            <value>pechorin@hero.org</value>
            <value>raskolnikov@slums.org</value>
            <value>stavrogin@gov.org</value>
            <value>porfiry@gov.org</value>
        </list>
    </property>
</bean>

新版

<util:list id="emails" list-class="java.util.LinkedList">
    <value>pechorin@hero.org</value>
    <value>raskolnikov@slums.org</value>
    <value>stavrogin@gov.org</value>
    <value>porfiry@gov.org</value>
</util:list>

三、Set 類型

舊版

<bean id="emails" class="org.springframework.beans.factory.config.SetFactoryBean">
    <property name="sourceSet">
        <set>
            <value>pechorin@hero.org</value>
            <value>raskolnikov@slums.org</value>
            <value>stavrogin@gov.org</value>
            <value>porfiry@gov.org</value>
        </set>
    </property>
</bean>

新版

<util:set id="emails" set-class="java.util.TreeSet">
    <value>pechorin@hero.org</value>
    <value>raskolnikov@slums.org</value>
    <value>stavrogin@gov.org</value>
    <value>porfiry@gov.org</value>
</util:set>

四、基本類型與包裝類

利用建構子注入:

<bean id="countNum" class="java.lang.Integer">
    <constructor-arg value="5"/>
</bean>

<bean id="countMessage" class="java.lang.String">
    <constructor-arg value="Hello"/>
</bean>

其他基本類型(Boolean、Long、Double 等)同理。

五、注入使用範例

@Component
public class MailService {
    @Resource(name = "emails")
    private Map<String, String> emailMap;

    @Resource(name = "emailsList")
    private List<String> emailList;

    @Resource(name = "countNum")
    private Integer threshold;
}

六、選擇建議

  • 新專案優先使用 util: 命名空間,語義清晰、支援型別屬性、可直接指定實作類別。
  • 舊專案維護時可沿用 FactoryBean 風格,兩者可共存。
  • 基本類型 Bean 適合作為常數配置集中管理,避免硬編碼分散在程式碼中。

七、總結

Spring 提供豐富的集合與基本類型 Bean 定義方式,善用 util: 標籤能大幅簡化 XML 配置,提升可讀性與維護性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved