2017年不容错过的10+个开源 Java库

向阅读此文的读者问好,

此文的灵感来自于 Andres Almiray 的工作。

这些开源库非常棒,我已经将它们整理成参考清单,附上简短的功能清单连同案例一同分享。

请欣赏!

Guice

Guice(音同“juice”)是谷歌开发的一个轻量级的依赖注入框架,支持 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 是现代应用程序实现互联的机制。数据和媒体的交互都基于此。高效的 http 机制能提升你的下载速度和节约带宽。

OkHttp 作为一个HTTP客户端,默认:

HTTP/2 服务默认发往同一台主机的所有请求共用一个套接字。

连接池减少请求的延迟(如 HTTP/2 不可用)。

gzip 压缩下载大小可见。

通过响应缓存完全避免了网络的重复请求。

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

butta butta翻译于 2天前2人顶  翻译得不错哦! 其它翻译版本(1)

Retrofit

来自 Square 公司的 HTTP 客户端,类型案例,可用于 Android 和 Java。Retrofit 会按照 HTTP API 生成 Java 接口。

public interface GitHubService {    @GET("users/{user}/repos")    Call<List<Repo>listRepos(@Path("user") String user);}

Retrofit 类实现 GitHubService 接口。

Retrofit retrofit = new Retrofit.Builder()    .baseUrl("https://api.github.com/")    .build(); GitHubService service = retrofit.create(GitHubService.class);

来自 GitHubService 的每个 Call 都会向远端 Web 服务器发送一个同步或异步的 HTTP 请求。

Call<List<Repo>> repos = service.listRepos("octocat");

GitHub,网站

JDeferred

Java 的 Deferred/Promise 库,与 JQuery 的 Deferred/Promise 相似

  • Deferred 和 Promise 对象

  • Promise 回调:.then(…), .done(…), .fail(…), .progress(…), .always(…)