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

Spring 多配置檔載入三種方式:陣列、通配符、Import 匯入

     編輯:Java 相關知識

Spring 應用隨規模增長,單一 applicationContext.xml 會膨脹難維護。模組化拆分多配置檔是必然選擇。本文整理 Spring 載入多配置檔的三種標準方式。

方式一:建構子傳入字串陣列 (精確控制載入順序)


ApplicationContext context = new ClassPathXmlApplicationContext(
    new String[] { "a1.xml", "a2.xml", "dao.xml", "service.xml" }
);
  • 優點:順序明確、依賴關係可控 (後載入可覆蓋先載入的 Bean 定義)
  • 缺點:檔案增減需修改 Java 碼
  • 適用:單元測試、獨立應用、精確控制載入順序場景

方式二:Classpath 通配符 (自動掃描匹配檔案)


// 載入 classpath 根目錄所有 applicationContext-*.xml
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-*.xml");

// 載入特定目錄下所有 xml
ApplicationContext context = new ClassPathXmlApplicationContext("config/*.xml");
  • 優點:新增配置檔無需修改代碼,約定優於配置
  • 缺點:僅對檔案系統有效,JAR 內 classpath 檔案無法匹配 (Spring 限制)
  • 適用:模組化專案、約定目錄結構、非打包部署環境

方式三:<import> 標籤在主配置檔匯入 (官方推薦)

主配置檔 applicationContext.xml:





    
    
    
    
     

  • 優點:XML 宣告式、支援相對路徑與 classpath: 前綴、JAR 內檔案同樣支援、IDE 可導航跳轉
  • 缺點:循環匯入會拋出 BeanDefinitionParsingException
  • 適用:企業級應用標準做法,Web 專案 web.xml 僅載入主配置檔

Web 專案整合範例 (web.xml)



    contextConfigLocation
    /WEB-INF/applicationContext.xml


    org.springframework.web.context.ContextLoaderListener

ContextLoaderListener 讀取 contextConfigLocation,載入主配置檔,主配置檔透過 <import> 遞歸匯入所有子模組配置。

進階:環境區分與 Profile




    




    



-Dspring.profiles.active=prod

總結建議

場景推薦方式
單元測試、獨立主程式方式一 (String[])
約定目錄結構、非 JAR 部署方式二 (通配符)
企業級 Web/EE 應用、JAR 模組化方式三 (<import>) ✓ 最佳實踐
多環境部署方式三 + Spring Profile
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved