1. 程式人生 > >Spring的`@ImportResoruces`在SpringBootTest裡的一個問題解決記錄

Spring的`@ImportResoruces`在SpringBootTest裡的一個問題解決記錄

Spring的@ImportResoruces在SpringBootTest裡的一個問題解決記錄

當使用這個註解並配置為如下形式的時候: @ImportResource(classpath:spring*.xml),在單元測試的時候就讀取不到classpath的xml配置檔案。

這個問題是因為spring resource尋找機制決定的。
首先將配置的path路徑和最後的檔案匹配名分開,然後去尋找path,之後在path下尋找resources。

對於classpath:spring*.xml這種格式來說, dir就是""這樣獲取出來的path是test-class的根路徑,所以找不到。

解決辦法就是設定一個目錄,然後將配置檔案扔進去就好了。

但這裡涉及到了一個問題,就是這裡面有幾個classloader,有幾個根路徑根路徑的順序是什麼。 這個挖個坑等以後來填吧。