Spring for Android 1.0.0發布

jopen 12年前發布 | 15K 次閱讀 Android

近日,Spring for Android 1.0.0 GA 版發布了,Spring for Android 支持在 Android 環境下使用 Spring Framework。此次 GA 版發布包含了自 RC1 以來的一些小修復與改進。

如上所述,Spring for Android 項目支持在 Android 環境下使用 Spring Framework,這包括在 Android 應用中使用 RestTemplate 作為 REST 客戶端的能力。Spring for Android 還提供了將 Spring Social 功能集成到 Android 應用中的支持,其中包括健壯的、基于 OAuth 的授權客戶端與對諸如 推ter 與 非死book 等流行社交網站的實現。

此次發布的一個重要變化是默認的 RestTemplate 構造方法不再包含任何的消息體轉換器了。然而,你可以使用另一個構造方法包含一個標準的消息轉換器集合,這類似于之前發布的版本。感興趣的讀者可以參考 API 文檔與參考手冊來了解關于這個變化的更多細節信息。

Spring 的 RestTemplate 是個健壯的、流行的、基于 Java 的 REST 客戶端。Spring for Android RestTemplate Module 提供的 RestTemplate 版本能夠用于 Android 環境中。

RestTemplate 類是 Spring for Android RestTemplate 庫的核心。從概念上來說,它類似于其他 Spring 項目中的模板類。RestTemplate 的行為是通過提供回調方法并配置 HttpMessageConverter(用于將對象編排為 HTTP 請求體以及將響應反編排為對象)來定制的。在創建新的 RestTemplate 實例時,構造方法會創建出幾個支持對象來實現 RestTemplate 的功能。

RestTemplate 支持如下功能:

HTTP 客戶端

RestTemplate 為 RESTful HTTP 請求提供了一層抽象,在內部,RestTemplate 使用了一個原生的 Android HTTP 客戶端庫來處理這些請求。Android 上有兩個原生 HTTP 客戶端,一個是標準的 J2SE 工具,另一個是 HttpComponents HttpClient。標準的 J2SE 工具是通過 SimpleClientHttpRequestFactory 實現的,HttpClient 是通過 HttpComponentsClientHttpRequestFactory 實現的。在創建新的 RestTemplate 實例時所使用的默認 ClientHttpRequestFactory 會根據應用所運行的 Android 版本的不同而不同。

Google 推薦在 Gingerbread(Android 2.3)及之后的版本上使用 J2SE 工具,而之前的版本則應該使用 HttpComponents HttpClient。基于該建議,RestTemplate 會檢測應用運行的 Android 版本并使用恰當的 ClientHttpRequestFactory。要想使用具體的 ClientHttpRequestFactory,你需要向 RestTemplate 構造方法傳遞一個新實例,或是對已有的 RestTemplate 實例調用 setRequestFactory (ClientHttpRequestFactory requestFactory)方法。

Gzip 壓縮

RestTemplate 支持發送與接收通過 gzip 壓縮編碼的數據。HTTP 規范考慮到了 Accept-Encoding 頭中的附加值,但目前的 RestTemplate 只支持 gzip 壓縮。

對象到 JSON 的編排

在 Spring for Android RestTemplate 中,對象到 JSON 的編排需要使用第三方的 JSON 映射庫。Spring for Android 支持兩個庫,一個是 Jackson JSON Processor,另一個是 Google Gson。雖然 Jackson 是個眾所周知的 JSON 解析庫,但 Gson 庫卻更小,這樣在打包時 Android 應用的體積就會更小。

對象到 XML 的編排

在 Spring for Android RestTemplate 中,對象到 XML 的編排也需要使用第三方的 XML 映射庫。Simple XML serializer 用于提供該編排功能。

RSS 與 Atom 支持

在 Spring for Android RestTemplate 中,RSS 與 Atom feed 支持也需要使用第三方的 feed reader 庫。Android ROME Feed Reader 用于提供該功能。

此次發布所要求的最低 Android 版本為 Android 2.1(API Level 7),并未對 Android 的早期版本進行測試。

此次發布的改進有:

  • 增加了一個不包含任何消息轉換器的 RestTemplate 構造方法。
  • 合并了自 Spring Framework 3.1.1 以來 RestTemplate 的一些變化。
  • 可以在 StringHttpMessageConverter 中指定默認字符集以及可用字符集列表。
  • 改進了 Android 版本檢測。
  • 從 RestGatewaySupport 中移除了對 Commons Logging 的未使用的引用。

此次發布的 Bug 修復有:

  • HttpUrlConnection 對 401 未授權響應會拋出 IOException,但并未被 RestTemplate 正確處理。
  • UriUtils 沒有恰當地對 URL 進行編碼。
  • HttpBasicAuthentication 使用了不受支持的 Base64 庫。

若想獲得此次發布,請下載發布包,或是將 maven artifacts 添加到項目中。示例應用位于 github.com/SpringSource/spring-android-samples 上。

來自: InfoQ

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!