最近在研究 PlayFramework 2.0,主要关注在使用 Scala 来写 Play 2.0 的应用,下面是从官方文档进行的翻译,并加入了大量的自己的理解与备注( Unmi 注: 起头的蓝色文字)
Tag: play2.0
Play 2.0 中文资料 - 应用程序全局对象
应用全局设置
全局对象
在你的项目中定义一个 Global
对象,它为你处理应用的全局设置. 这个对象必须定义在默认包中(即不带 package 声明的包).
1 2 3 4 5 |
import play.api._ object Global extends GlobalSettings { } |
小贴士: 你也可使用
application.global
key 值在在配置中指定自己的GlobalSettings
实现类名称.
Unmi 注: GlobalSettings.scala 放在 app 目录比较合适,Scala 的 package 层次与目录并不存在严格的对应关系。
要说呢,不带 package 声明的写法确实不是什么好习惯,因为其他带 package 声明的类无法使用它。见:为何Java的有包名的类不能引用默认包中的类。这就对了,本来这个全局对象就不是给别的类用的 - Don't call me, I'll call you。
勾住应用启动和停止事件
你可以覆盖方法 onStart
和 onStop
,它们会在应用的生命周期启动,停止时得到通知: 阅读全文 >>
Play 2.0 中文资料 - Play JSON 库使用泛型
- 使用 Json
概述
当使用基于 JSON 库的 typeclass(Unmi: typeclass 还没摸准翻译成什么词较合适,此前译作 类型类,觉得有点不妥,所以暂时保留原样) 时,可能会把泛型支持包含进这些 typeclass 中来. 针对基于终端控制查询参数,使用基本的结构作为查询结果的 REST API 来说可能是一个很好的应用方式.
Scala 对泛型的支持
给定如下基本的结构作为搜索结果:
1 2 3 4 5 6 |
case class SearchResults[T]( elements: List[T], page: Int, pageSize: Int, total :Int ) |
Unmi 注: 上面 case class 涉及到了 Scala 的样本类的特性,Scala 会给这个类自动添加一些句法:1)添加与类名一致的工厂方法,2)参数列表中的所有参数前隐式获得了 val 前缀,即会由相应的的实例变量保持状态,3)自动添加了 toString, hashCode, 和 equals 方法。 阅读全文 >>