我在我的应用程序中使用Guice非常多。最近我开始学习akka演员,感觉就像用它重构我的应用程序。
然而,我已经想知道我的所有guice将如何与演员合作。我继续搜索谷歌,它有点混乱。
我在这个主题上找到的最新文档是论文:
http://letitcrash.com/post/55958814293/akka-dependency-injection
http://eng.42go.com/tag/guice/
不提倡相同的事情。
我必须承认我仍然需要阅读很多,我正在学习akka的开始。我做了一些例子和一些简单的事情,但我不想深入了解后来会发现我会遇到很多问题。
所以我的问题是截至今天,关于如何使用依赖注入的Akka Actors的共识是什么。
可以进行哪种注射?我们可以将演员与对象/其他演员联系起来/....
无论如何,请以简洁的方式概述一些可以帮助我理解什么是可能的以及最佳实践的东西?
答案 0 :(得分:5)
我知道您正在使用Guice和Scala在Akka中工作,但Typesafe提供了一个tutorial,用于描述使用Spring和Java在Akka中的工作方式。这可以为理解依赖注入如何适应您的情况的Actor
生命周期提供一个良好的起点。
同时,这里有一些来自documentation的示例代码,用于使用工厂方法来注入构造函数参数:
class DependencyInjector(applicationContext: AnyRef, beanName: String) extends IndirectActorProducer {
override def actorClass = classOf[Actor]
override def produce = // obtain fresh Actor instance from DI framework ...
}
val actorRef = system.actorOf(Props(classOf[DependencyInjector], applicationContext, "hello"), "helloBean")
Here是Typesafe就此事编制的一些指南。
最后,请从文档中注意以下内容:
“当使用依赖注入框架时,actor bean 绝不能具有单例范围。”
答案 1 :(得分:1)
最新的激活器有Akka with Guice的教程。