- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2017年你不能错过的Java类库
2017年你不能错过的 Java类库
各位读者好,
这篇文章是在我看过 Andres Almiray 的一篇介绍文后,整理出来的。
因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示
例。
请欣赏!
Guice
Guice (发音同 ‘juice’) ,是一个 Google 开发的轻量级依赖性注入框架,适合 Java 6 以
上的版本。
# Typical dependency injection
public class DatabaseTransactionLogProvider implements ProviderTransactionLog {
@Inject Connection connection;
public TransactionLog get() {
return new DatabaseTransactionLog(connection);
}
}
# FactoryModuleBuilder generates factory using your interface
public interface PaymentFactory {
Payment create(Date startDate, Money amount);
}
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();
}
Retrofit
Retrofit 是 Square 下的类型安全的 HTTP 客户端,支持 Android 和 Java 等,它能将你的
HTTP API 转换为 Java 接口。
Retrofit 将 HTTP API 转换为 Java 接口:
public interface GitHubService {
@GET(users/{user}/repos)
CallListRepolistRepos(@Path(user) String user);
}
Retrofit 类实现 GitHubService 接口:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(/)
.build();
GitHubService service = retrofit.create(GitHubService.class);
来自 GitHubService 的每个 Call 都能产生为远程 Web 服务产生一个异步或同步 HTTP 请
求:
CallListRepo repos = service.listRepos(octocat);
JDeferred
与 JQuery类似的 Java Deferred/Promise类库
Deferred 对象和 Promise
Promise 回调:.then(…), .done(…), .fail(…), .progress(…), .always(…)
支持多个 promises - .when(p1, p2, p3, …).then(…)
Callable 和 Runnable - wrappers.when(new Runnable() {…})
使用 Executor 服务
支持 Java 泛型: DeferredInteger, Exception, Doubledeferred;, deferred.resolve(10);,
deferred.reject(new Exception());,deferred.notif
文档评论(0)