2012-03-17 161 views
7

我的Play Framework應用程序中有一些情況,其中一些模型依賴於其他模型,這會在嘗試將它們序列化爲JSON時創建潛在的危險。另外,每個模型中都有一些屬性,我不想公開給客戶端。最後但並非最不重要的一點是,Web客戶端收到的moel實例中的一些屬性並不是真的來自數據庫,而是來自第三方Web服務。DTO in Play Framework

我聽說可以在將對象呈現給JSON之前應用自定義序列化器,但是我想使用更簡單的方法:DTO然後序列化爲JSON。

問題是,我應該在哪裏放置每個模型類的DTO轉換函數?控制器?模型?也許最好的方法是遵循序列化策略並創建幾個轉換類 - 每個模型一個轉換類?

我最大的擔心是轉換器也應該彼此瞭解,因爲顯然我想將作者實例中的每個Book實例先轉換爲DTO,然後再將作者轉爲DTO。這真的很糟糕嗎?

回答

3

在標準Java EE應用程序(Spring)中,應該使用Dozer framework在模型對象和DTO之間進行轉換。

在玩!上下文中,我應該將DTO和轉換器放在專用包中,或者放在models的子包中。