‘ JAVA ’ 目录归档
哪个线程执行 CompletableFuture’s tasks 和 callbacks?
原文链接 作者:Tomasz Nurkiewicz 译者:simonwang
CompletableFuture尽管在2014年的三月随着Java8被提出来,但它现在仍然是一种相对较新潮的概念。但也许这个类不为人所熟知是好事,因为它很容易被滥用,特别是涉及到使用线程和线程池的时候。而这篇文章的目的就是要描述线程是怎样使用CompletableFuture的。
ExecutorService-10个要诀和技巧
原文链接 作者:Tomasz Nurkiewicz 译者:simonwang
ExecutorService抽象概念自Java5就已经提出来了,现在是2014年。顺便提醒一下:Java5和Java6都已不被支持,Java7在半年内也将会这样。我提出这个的原因是许多Java程序员仍然不能完全明白ExecutorService到底是怎样工作的。还有很多地方要去学习,今天我会分享一些很少人知道的特性和实践。然而这篇文章仍然是面向中等程序员的,没什么特别高级的地方。
用SLF4J和Guidce记录日志
又一次对java.util.logger无语的时候,我在想如何用SLF4J logger取代它。尽管Guice针对java.util.logger提供一个非常好的内部绑定,slf4j提供一个更好的语法。永远是细节中的魔鬼…如果你想你的logger与当前类一起初始化,你不能简单地注入logger。但是,在Guice中有一个好教程(http://code.google.com/p/google-guice/wiki/CustomInjections):关于注入log4j looger。SLF4J也是这样工作的。
《Apache Zookeeper 官方文档》ZooKeeper可插入式身份认证
原文地址
ZooKeeper运行在带有数量众多并且各不相同的身份认证schemes(视图)的各种不同环境中,所以它拥有完整的可插入式身份验证框架。甚至它内置的身份验证schemes也使用了可插入式身份验证框架。
想搞清楚身份验证框架式是如何工作的,你首先必须弄明白两个主要的身份验证操作。该框架首先必须验证客户端(client)。这一步通常都会被完成只要客户端连接到服务器并且它包含了从服务器发送过来或收集到相关的关于客户端与连接进行关联的验证信息。第二步由框架处理的操作时找出一个对客户端进行响应的ACL中的entries(我翻译成“标识”)。ACL entries是一对<idspec, permissions>对。Idspec可能是一个匹配关联连接的验证信息的简单字符串(simple string)或者它也可能是一个用来评估该验证信息的表达式(expression)、它关注于实现身份验证插件的匹配。这里是身份验证插件中必须被实现的接口:
阅读全文
《Maven官方文档》创建Archetype
创建archetype是一个非常简单的过程。archetype就是一个非常简单的构件,它包含了你想创建的工程的模型。archetype由这些东西组成:
- 一个archetype描述符(archetype descriptor)(src/main/resources/META-INF/maven目录下的archetype.xml)。这个文件列出了包含在archetype中的所有文件并将这些文件分类,因此archetype生成机制才能正确的处理。
- 原型文件(prototype files),archetype插件会复制这些文件(目录: src/main/resources/archetype-resources/)
- 原型POM(prototype pom)(pom.xml in: src/main/resources/archetype-resources)
- archetype的POM(pom.xml 在archetype的根目录下)
《SLF4J官方文档》本地化支持
SLF4J-dev邮件列表上的一个讨论产生了一种开源项目叫做CAL10N或编译器辅助定位 。
正如其名所表示的,CAL10N专注于Java应用程序本地化/国际化的问题。
在CALI0N上,附带SLF4J-EXT-1.7.21.jar的org.slf4j.cal10n包的顶部增加了一个非常薄的一层包以提供本地化的日志记录。