Play-Mongo 0.3.0,重构自动生成 Json Formats 模块

Play-Mongo 0.3.0 已发布。

Play-Mongo 0.2.0 版本通过 implicit macro 实现自动生成 Json Formats,代码如下:

package object models {
  implicit def formats[T <: Product]: Format[T] = macro JsonFormatMacro.materializeJsonFormat[T]
}

但是在实际使用中发现,sbt 的增量编译和热加载有时会导致自动生成失效。故 Play-Mongo 0.3.0 版本使用 macro annotation 重新实现了该功能,用法如下:

package object models {
  @JsonFormat("models")
  implicit val formats = ???
}

在编译时,@JsonFormat 注解处会自动生成 models 包下所有 case classes 的隐式 Format 对象。

猜你喜欢

转载自www.oschina.net/news/98716/play-mongo-0-3-0-released