我見過一些使用classpath:/some/path/to/resource
URL協議直接從運行時類路徑中讀取配置文件和其他資源的Spring代碼。Java URL協議:classpath:/?
這是Spring構造還是Java構造?
除了這個問題我找不到任何文檔 - URL to load resources from the classpath in Java,這並不表示任何方式。
如果是Java構造,任何人都可以指向我的官方文檔嗎?
我見過一些使用classpath:/some/path/to/resource
URL協議直接從運行時類路徑中讀取配置文件和其他資源的Spring代碼。Java URL協議:classpath:/?
這是Spring構造還是Java構造?
除了這個問題我找不到任何文檔 - URL to load resources from the classpath in Java,這並不表示任何方式。
如果是Java構造,任何人都可以指向我的官方文檔嗎?
那麼你可以隨時註冊URL處理程序。 Java也有一個file:///和jar:handler。另外class.getResource將默認從classpath中讀取。
http://code.google.com/p/madura-classpath-protocol-handler/
顯然這是一個春天的特點。
「您可以在JDK的RT.JAR文件中看到這些標準處理程序和相關的實現類。查找完全限定名稱以sun.net.www.protocol開頭的類。例如,類sun。 net.www.protocol.http.Handler定義了HTTP協議處理程序,類sun.net.www.protocol.ftp.Handler定義了FTP協議處理程序類。「
http://java.sun.com/developer/onlineTraining/protocolhandlers/
「異常在線程 」主「 java.net.MalformedURLException:未知協議:類路徑」 (說的java 1.6)
酷技巧!我不知道你可以註冊自己的處理程序(+1)!但是,你知道'classpath'是否是Spring定義/註冊的URL處理程序,或者它是否隨Java一起提供?再次感謝! – IAmYourFaja 2012-08-17 13:22:17
我認爲這是一個內在的春天特徵(看那裏的鏈接) – 2012-08-17 13:28:46
類路徑:特定於彈簧。 Spring的資源解析機制(即PathMatchingResourcePatternResolver
或其他實施)知道"classpath:"
和「classpath *:」前綴。
它接受並解析爲ClassPathResource
對象,該對象碰巧實現彈簧Resource
接口。
Resource
接口,除此之外,有一個getInputStream()
方法可用於獲取內容,而不必知道它是什麼類型的資源。
這與任何URL協議處理完全分開,所以您不一定能夠直接將其添加爲協議處理程序。
但是,您可能會使用ClassPathResource
類本身作爲協議處理程序的一部分。
我建議閱讀關於'ResourceLoader'抽象:http://static.springsource.org/spring/docs/3.0.x/reference/resources.html#resources-resourceloader – 2012-08-22 20:59:09