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