繁体   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