Play 当前版本是 2.0.4,2.0 前的版本通常会称为 PlayFramework,或者 Play!,现在干脆直呼为 Play 了,名气大了些就这样的,似乎越来越显得不可一世了。本人有意更深点了解 Play 框架,所以打算翻译官网 Manual, tutorials & references 一系列资料,并且着重点会先放在基于 Scala 语言的 Play 2.0 的应用。Play 2.0 是一个高生产率的 Java 和 Scala 的 Web 应用框架,它集成了现代 Web 应用开发所而的组件和 API。
Unmi 注:关于 Iteratee IO, 可参考:Iteratee I/O 和 Scalaz Tutorial: Enumeration-Based I/O with Iteratees
Play 是轻量级的,无状态的,Web 友好的架构,并且是特征可预期的(features predictable)。还借助于它的反应模型(reactive model) 和 Iteratee IO 的使用,让 Play 为高伸缩性的应用最小化了资源消耗(CPU, 内存和线程).
第一步要翻译的内容只想覆盖到以下:
开始使用- 在 Struts2 中要使用 Ajax 获得 Json 数据我认为目前还是 struts2-json-plugin 了。当然你你可以用手工用像 XStream、Google Gson、Jackson 这样的工具手工把 Java 对象转换成 Json 字符串再写往 Response 去,要写的代码自然多不了,还得留心字符集与 content type。而 struts2-json-plugin 毫无疑问是与 Struts2 最亲近了,只需你配置一些属性就能得到你想的结果。
本想分几篇逐步介绍如何使用 struts2-json-plugin 的,然而就在现在发现官方的 struts2-json-plugin 指南已经很详细了,所以干脆翻译一下 http://struts.apache.org/2.2.1.1/docs/json-plugin.html,同时自己加深对它的理解。 Read More - 十. 配置 Quartz 数据源
如果你在使用 JDBC JobStore,就需定义要用到的数据源。而如果使用的是 JobStoreCMT,你实际上需要定义两个数据源。数据源可由三种方式来配置:
·在 quartz.properties 文件中指定连接池属性,这样 Quartz 能亲自创建数据源。
·指定应用服务器管理的数据源所在 JNDI 的位置,Quartz 直接使用它。
·还可使用自定义的 org.quartz.utils.ConnectionProvider 实现类。 Read More - 九. 配置 JobStoreCMT
JobStoreCMT 提供了另一类型的 JobStore,它能工作于一个关系型数据库之下。你能通过设置 org.quartz.jobStore.class 属性来选用 JobStoreCMT:
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT
当使用 JobStoreCMT 时,可设置一些附加属性,它们是表 A.5 所示的。 Read More - 八. 配置 JobStoreTX JobStore
你可以像下面那样设定类名来选择 JobStoreTX 类:
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
表 A.4 列出了配置 Quartz JobStore 的可用属性。只有少数几个属性是必须的,而且其他的都有合理的默认值。 Read More - 六. 配置 Quartz RMI 选项
当通过 RMI 使用 Quartz 启动一个 Quartz 实例时,你需要把它配置为经由 RMI "导出" 服务。然后你就能创建客户端,配置它们的 Quartz Scheduler 作为 "代理" 工作而连接到服务端来。表 A.3 列出了可用的 RMI 设定。
Read More表 A.3. Quartz 使用 RMI 时的属性 名称 必须 类型 默认值 org.quartz.scheduler.rmi.export 否 Boolean false org.quartz.scheduler.rmi.registryHost 否 String localhost org.quartz.scheduler.rmi.registryPort 否 Integer 1099 org.quartz.scheduler.rmi.createRegistry 否 String never org.quartz.scheduler.rmi.serverPort 否 Integer Random org.quartz.scheduler.rmi.proxy 否 Boolean false - 二. 配置 Quartz ThreadPool
表 A.2 列出了配置 Quartz ThreadPool 可用的属性。只有少些属性是必须的,剩下的都有合理的默认值。
Read More表 A.2. 配置 Quartz ThreadPool 的属性 名称 必须 类型 默认值 org.quartz.threadPool.class 是 String null org.quartz.threadPool.threadCount 是 Integer -1 org.quartz.threadPool.threadPriority 否 Integer 5 org.quartz.threadPool.makeThreadsDaemons 否 boolean false org.quartz.threadPool.threadsInheritGroup-
OfInitializingThread否 boolean true org.quartz.threadPool.threadsInheritContext-
ClassLoaderOfInitializingThread否 boolean false - 附录 A. Quartz 配置参考
本附录编写作为配置一个 Quartz 应用的快速参考。尽管这些信息在 Quartz 文档中都有,但是这个附录提供了一种更快的方式来查找配置属性和它们可能的值。
一. 主要的 Quartz 属性
表 A.1 列出了主要的 Scheduler 属性。它们用于声明和标识 Scheduler 和其他高层次的设置。 Read More 
Quartz Job Scheduling Framework 中 文 版
Chuck Cavaness 著 Unmi(隔叶黄莺) 译译者博客:http://unmi.cc/
下载地址:Quartz Job Scheduling Framework 中文版.chm
写在最前面的
这一次的版本更新主要是因为创立了自己的独立博客 http://unmi.cc,从 blogjava.net 上脱离了开来,所以原来可以点击
进行探讨的链接全都更新到这个博客来了,因为原链接已无效了。还有稍稍改了点原文中的一些差错。
Quartz 是什么,大概不需多加说明,简单讲就是一个纯 Java 实现的作业调度工具,相当于数据库中的 Job、Windows 的计划任务、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精细。也许大多数人听说 Quartz 是在学习或使用 Spring 的时候,也就是 Spring 整合了 Quartz。
同时感谢大家一路来的支持,也希望大家能提出宝贵意见,或有问题拿出来共同探讨。另外,每篇译章都有到达我的博客上 所对应页面的链接,所以若有疑问可点击页面上方或下方的的
按钮进入到博客对应页面来对本篇进行评论,或阅读他人的相关评论。看到 Maven 不断的演进, 著名的 Appfuse 也摒弃了 Ant 而采用了 Maven 作为它的构建管理工具,各个 Java IDE 对于 Maven 的支持也是纷纷上马,所以急迫的感觉对于 Maven 的出现是不容忽视了。Ant 纵然是能满足于我们的需求,不过 Ant 的 build.xml 脚本总那么臃肿不堪,不利于阅读。
而 Maven 与 Ant 同出一族,为 Apache 门下的师兄弟。既然 Apache 会再发明这样一个新轮子,相比于 Ant 确有它的许多独到之处。Maven 依赖了 ant-x.x.x 包,但要说是建立在 Maven 之上的话恐有不太合适。
关于 Maven 与 Ant 之间比较的文章在网上能找到不少,如 maven和ant的比较。具体的不细说,略表几个 Maven 关键之处:1. 对依赖包的处理十分优雅;2. 有大量可用的插件支持;3. 便于与其他工具的支持;4. 适合于多项目的开发。本人也是接触不久,还有许多有待发掘。 Read More