Play-Mongo 0.3.0,重構自動生成 Json Formats 模組

類別: IT

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 物件。

Play-Mongo 0.3.0,重構自動生成 Json Formats 模組原文請看這裡