簡體   English   中英

Scala游戲框架:如何在域(實體)類中正確注入依賴項

[英]Scala, play framework: How to properly inject dependency in domain (entity) class

我有一個域對象:

case class User(val id: Long, username: String)

我不想遵循服務庫方法(就像典型的Spring應用程序一樣,其中實體只是數據持有者),我想將與用戶相關的功能放入User對象。

但是我不想將User對象與具體的基礎架構實現聯系起來,因此我想傳遞接口(特征)。

我正在嘗試通過以下方式做到這一點:

case class User(val id: Long, val username: String, implicit val userRepository: IUserRepository)

在應用程序中的某個位置(控制器或其他位置),我想注入(使用@Inject())IUserRepsoitory的具體實現,並希望將其隱式傳遞給User的構造函數。

問題1 :案例類User(val id:Long,val用戶名:字符串, 隱式val userRepository:IUserRepository )-這不起作用,無法編譯

問題2 :將基礎架構實現與對象域分離開來是正確的方法嗎? 他們是一些最佳做法嗎?

謝謝。

整個參數列表是隱式的還是不是隱式的。 您正在尋找

case class User(id: Long, username: String)(implicit userRepository: IUserRepository)

從體系結構上講,讓用戶類知道它自己的存儲庫聽起來是個壞主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM