【发布时间】:2023-03-04 22:00:02
【问题描述】:
我正在使用 Scala + Play 和开箱即用的 Guice 设置依赖注入。我还在幕后使用 Akka Persistence,并希望为自定义读取日志创建绑定,然后我可以将其注入到我的应用程序中。
不幸的是,读取日志构造函数(我无法控制)需要对参与者系统的显式引用:
PersistenceQuery(actorSystem).readJournalFor[CustomReadJournal]("custom-key")
如何从绑定定义类 (Module) 中获取对底层 actorSystem 的引用?这可能吗?更一般地说,是否可以定义相互依赖的绑定(a la Scaldi?)
我的Module 类条目目前看起来像:
bind(classOf[CustomReadJournal]).toInstance(PersistenceQuery(<what do i put here?>).readJournalFor[CustomReadJournal]("custom-journal"))
提前感谢您的帮助!
【问题讨论】:
-
您是否考虑过使用@Provides 并提供您的actorSystem 作为参数以便您也可以注入它?如果需要另外提供,可以通过play.api.libs.concurrent.Akka.system(Play.current)使用play内置的akka系统
标签: scala playframework dependency-injection akka guice