向閱讀此文的讀者問好,
此文的靈感來自于 Andres Almiray 的工作。
這些開源庫非常棒,我已經(jīng)將它們整理成參考清單,附上簡短的功能清單連同案例一同分享。
請欣賞!
Guice
Guice(音同“juice”)是谷歌開發(fā)的一個(gè)輕量級(jí)的依賴注入框架,支持 java 6 及以上版本。
# Typical dependency injectionpublic class DatabaseTransactionLogProvider implements Provider<TransactionLog> { @Inject Connection connection; public TransactionLog get() { return new DatabaseTransactionLog(connection); }}
# FactoryModuleBuilder generates factory using your interfacepublic interface PaymentFactory { Payment create(Date startDate, Money amount); }
GitHub, JavaDoc, User guide, FactoryModuleBuilder
OkHttp
HTTP 是現(xiàn)代應(yīng)用程序?qū)崿F(xiàn)互聯(lián)的機(jī)制。數(shù)據(jù)和媒體的交互都基于此。高效的 http 機(jī)制能提升你的下載速度和節(jié)約帶寬。
OkHttp 作為一個(gè)HTTP客戶端,默認(rèn):
HTTP/2 服務(wù)默認(rèn)發(fā)往同一臺(tái)主機(jī)的所有請求共用一個(gè)套接字。
連接池減少請求的延遲(如 HTTP/2 不可用)。
gzip 壓縮下載大小可見。
通過響應(yīng)緩存完全避免了網(wǎng)絡(luò)的重復(fù)請求。
OkHttpClient client = new OkHttpClient();String run(String url) throws IOException { Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); return response.body().string();}
GitHub, Website

Retrofit
來自 Square 公司的 HTTP 客戶端,類型案例,可用于 Android 和 Java。Retrofit 會(huì)按照 HTTP API 生成 Java 接口。
public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>listRepos(@Path("user") String user);}
Retrofit 類實(shí)現(xiàn) GitHubService 接口。
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .build(); GitHubService service = retrofit.create(GitHubService.class);
來自 GitHubService 的每個(gè) Call 都會(huì)向遠(yuǎn)端 Web 服務(wù)器發(fā)送一個(gè)同步或異步的 HTTP 請求。
Call<List<Repo>> repos = service.listRepos("octocat");
GitHub,網(wǎng)站
JDeferred
Java 的 Deferred/Promise 庫,與 JQuery 的 Deferred/Promise 相似