首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图在Lagom中注入依赖项时出错

试图在Lagom中注入依赖项时出错
EN

Stack Overflow用户
提问于 2017-09-12 07:48:17
回答 1查看 560关注 0票数 0

我试图创建一个使用Lagom框架和Scaladsl发送电子邮件的简单服务。我试图使用Play Mailer插件来处理电子邮件,但我很难将它插入到服务实现中。

我创建了服务特性和实现,将mailerClient作为一个依赖项传递到构造函数中。

代码语言:javascript
复制
trait MailerService extends Service { ... }

class MailerServiceImpl(mailerClient: MailerClient, persistentEntityRegistry: PersistentEntityRegistry) extends MailerService {
...
}

我正在ApplicationLoader中连接服务,遵循在Lagom文档和hello应用程序中使用macwire解释的模式。

代码语言:javascript
复制
abstract class MailerApplication(context: LagomApplicationContext) 
  extends LagomApplication(context)
    with CassandraPersistenceComponents
    with AhcWSComponents {

  override lazy val lagomServer: LagomServer = serverFor[MailerService](wire[MailerServiceImpl])
  override lazy val jsonSerializerRegistry = MailerSerializerRegistry
  persistentEntityRegistry.register(wire[MailEntity])
}

当我试图编译时,我会得到以下错误。

错误/.../workspace/mailer/mailer-impl/src/main/scala/com/example/mailer/impl/MailerApplicationLoader.scala:92:找不到类型值: play.api.libs.mailer.MailerClient

我原以为macwire能够从构造函数中分离出依赖项,但它看起来并不是真的。我尝试过不同的选项,比如尝试将其显式地连接到应用程序加载程序中,但到目前为止都没有成功。

我很确定,关于DI在Lagom中的工作方式,我有些地方弄错了,但我无法弄清楚。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-12 08:15:35

要使MailerClient具有注入性,您需要将MailerComponents特性与您在服务中使用的其他特征混合在一起。

例如:

代码语言:javascript
复制
// ...
import play.api.libs.mailer._

abstract class MailerApplication(context: LagomApplicationContext) 
  extends LagomApplication(context)
    with MailerComponents // add this here
    with CassandraPersistenceComponents
    with AhcWSComponents {

  override lazy val lagomServer: LagomServer = serverFor[MailerService](wire[MailerServiceImpl])
  override lazy val jsonSerializerRegistry = MailerSerializerRegistry
  persistentEntityRegistry.register(wire[MailEntity])
}

这在关于编译时注入的Play Mailer文档中进行了描述。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46170776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档