🎮 Play 入门与学习(五) 2.5.x 版本自定义 Action

由于目前在公司使用的 Play 版本是 2.5.4,本章将会讲解一下对此版本 Action 的相关知识。

使用 ActionBuilder 构建一个通用的 Action

1
2
3
4
5
6
7
8
9
10
object LogAction extends ActionBuilder[Request] {
override def invokeBlock[A](request: Request[A], block: (Request[A]) => Future[Result]): Future[Result] = {
val start = System.currentTimeMillis()
block(request).map { result =>
val duration = System.currentTimeMillis() - start
println(s"请求 $request 耗时 $duration")
result
}
}
}