Resources(com.ibatis.common.resource.*)
Resources 類為從類路徑中加載資源,提供了易於使用的方法。處理 ClassLoader 是一項
富於挑戰的工作,尤其是應用服務器/容器的情況下。
Resources 類試圖簡化這些工作,Resources 類常用於以下幾種情況:
1.從類路徑加載 SQL Map 配置文件(如 sqlMap-config.xml)。
2. 從類路徑加載 DAO Manager 配置文件(如 dao.xml)。
3. 從類路徑加載各種.properties 文件。
加載一個資源有很多方式,包括:
1.對於簡單的只讀文本數據,加載為 Reader。
Reader getResourceAsReader(String resource);
2. 對於簡單的只讀二進制或文本數據,加載為 Stream。
Stream getResourceAsStream(String resource);
3.對於可讀寫的二進制或文本文件,加載為 File。
File getResourceAsFile(String resource);
4. 對於只讀的配置屬性文件,加載為 Properties。
Properties getResourceAsProperties(String resource);
5. 對於只讀的通用資源,加載為 URL。
按以上的順序,Resources 類加載資源的方法如下:
Url getResourceAsUrl(String resource);
在以上每個方法中,加載資源和加載 Resources 類的為同一個 ClassLoader,或者,如果 失敗,將使用系統的
ClassLoader。 在某些環境下(比如某些應用服務器), ClassLoader 可能是個麻煩事,您可以指定所使用的
ClassLoader(比如使用加載應用的 ClassLoader)。
上面每個方法都有相應把 ClassLoader 作為參數的方法。它們是:
1:Reader getResourceAsReader (ClassLoader classLoader, String resource);
2:Stream getResourceAsStream (ClassLoader classLoader, String resource);
3:File getResourceAsFile (ClassLoader classLoader, String resource);
4:Properties getResourceAsProperties (ClassLoader classLoader, String resource);
5:Url getResourceAsUrl (ClassLoader classLoader, String resource);
以上方法的 resource 參數名稱應該是全限定名,加上全文件/資源名。
例如,如果在類路徑中有資源“com.domain.mypackage.MyPropertiesFile.properties”,您使用下面的代碼加載
String resource = “com/domain/mypackage/MyPropertiesFile.properties”;
Properties props = Resources.getResourceAsProperties (resource);
同樣地,您可以從類路徑加載 SQL Map 配置文件為一個 Reader。假設它在類路徑的
properties 目錄下(properties.sqlMap-config.xml)。
String resource = “properties/sqlMap-config.xml”; Reader reader =
Resources.getResourceAsReader(resource); SqlMapClient sqlMap =
XmlSqlMapBuilder.buildSqlMap(reader);
---------------------
作者:just want to know
來源:CSDN
原文:https://blog.csdn.net/dreamzuora/article/details/80354601
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!