[英]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.