首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Spring TestContextFramework @ContextConfiguration locations 參數解析

     編輯:程式設計疑難解答

問題場景

教程影片中註解稱 @ContextConfiguration(locations="...") 括號內填「源碼編譯後路徑」,但實際操作卻填入 Spring 配置文件路徑(如 classpath:applicationContext.xml),感到困惑。

核心解釋

Spring 測試框架載入的是 ApplicationContext(容器),而非單純的類路徑。locations 指定的是構建容器所需的配置元數據位置:

  • XML 配置文件:classpath:spring/*.xml、file:config/appContext.xml
  • Java Config 類:classes=AppConfig.class
  • Groovy 腳本等

為何教程提「編譯後路徑」?

可能指 類路徑根目錄(Maven 預設 target/classes,Gradle 預設 build/classes/java/main),以便用 classpath: 前綴定位資源文件。但實際填寫的是配置文件相對類路徑的路徑,而非 .class 文件本身。

常見用法

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/spring-dao.xml", "classpath:spring/spring-service.xml"})
public class ServiceTest { ... }

// Spring Boot 簡化版
@SpringBootTest
public class ServiceTest { ... }

總結

locations 接受資源路徑模式,Spring 會從類路徑/文件系統載入並解析這些配置來構建測試用的 IoC 容器。

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