Resources(com.ibatis.common.resource.*) Resources 類為從類路徑中載入資源,提供了便於使用的方法。處理 ClassLoader 是一項富於挑戰的工作,尤其是應用伺服器/容器的情況下。Resources 類試圖簡化這些工作。 Resources 類常用於以下幾種情況: ? 從類路徑載入 SQL Map 設定檔(如 sqlMap-config.xml)。 ? 從類路徑載入 DAO Manager 設定檔(如 dao.xml)。 ? 從類路徑載入各種.properties 檔案。 載入一個資源有很多方式,包括: ? 對於簡單的唯讀文本資料,載入為 Reader。 ? 對於簡單的唯讀二進位或文本資料,載入為 Stream。 ? 對於可讀寫的二進位或文字檔,載入為 File。 ? 對於唯讀配置屬性檔案,載入為 Properties。 ? 對於唯讀通用資源,載入為 URL。 按以上的順序,Resources 類載入資源的方法如下: Reader getResourceAsReader(String resource); Stream getResourceAsStream(String resource); File getResourceAsFile(String resource); Properties getResourceAsProperties(String resource); Url getResourceAsUrl(String resource); 在以上每個方法中,載入資源和載入 Resources 類的為同一個 ClassLoader,或者,如果失敗,將使用系統的 ClassLoader。在某些環境下(比如某些應用伺服器),ClassLoader 可能是個麻煩事,您可以指定所使用的 ClassLoader(比如使用載入應用的 ClassLoader)。上面每個方法都有相應把 ClassLoader 作為參數的方法。它們是: Reader getResourceAsReader (ClassLoader classLoader, String resource); Stream getResourceAsStream (ClassLoader classLoader, String resource); File getResourceAsFile (ClassLoader classLoader, String resource); Properties getResourceAsProperties (ClassLoader classLoader, String resource); Url getResourceAsUrl (ClassLoader classLoader, String resource); 以上方法的 resource 參數名稱應該是全限定名,加上全檔案/資源名。例如,如果在類路徑中有資源“com.domain.mypackage.MyPropertiesFile.properties”,您使用下面的代碼載入http://www.ibatis.com Clinton Begin 著 劉濤(toleu@21cn.com) 譯 開發指南 iBATIS SQL Maps Page 59 of 62 資源為 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);