spring可以通過指定classpath*:與classpath:字首加路徑的方式從classpath載入檔案,如bean的定義檔案.classpath*:的出現是為了從多個jar檔案中載入相同的檔案.classpath:只能載入找到的第乙個檔案.
通過使用下面的**則可以將兩個jar包中的檔案都載入進來
而如果寫成下面的**,就只能找到其中的乙個xml檔案(順序取決於jar包的載入順序)
classpath*:的使用是為了多個component(最終發布成不同的jar包)並行開發,各自的bean定義檔案按照一定的規則:package+filename,而使用這些component的呼叫者可以把這些檔案都載入進來.
classpath*:的載入使用了classloader的getresources()
方法,如果是在不同的j2ee伺服器上執行,由於應用伺服器提供自己的classloader實現,它們在處理jar檔案時的行為也許會有所不同。 要測試classpath*:
是否有效,可以用classloader從classpath中的jar檔案裡載入檔案來進行測試:getclass().getclassloader().getresources("")
。(上面的例子是在sun的jre中執行的狀態)
從spring的原始碼,在pathmatchingresourcepatternresolver類中,我們可以更清楚的了解其對的處理:如果是以classpath*開頭,它會遍歷classpath.
classpath 與classpath 的區別
classpath是指 web inf資料夾下的classes目錄 1.解釋classes含義 1 存放各種資源配置檔案 init.properties log4j.properties,struts.xml 2 存放模板檔案 eg.actionerror.ftl 3 存放class檔案 對應的是專...
classPath和classPath 的區別
classpath和classpath 的區別 public static voidmain string args catch ioexception e todo auto generated catch block e.printstacktrace 5 當 classpath conf hi...
class與class的繼承
1 class point 6tostring 9 10var foo new point 2,3 11console.log foo.x 12 es6類完全可以看作建構函式的另一種寫法 13 type of function 14 point point.prototype.constructor...