【问题标题】:Dependency injection with Akka使用 Akka 进行依赖注入
【发布时间】:2014-01-19 10:53:05
【问题描述】:

我在我的应用程序中经常使用 Guice。最近我开始学习 akka actor,并想用它重构我的应用程序。

不过,我已经开始想知道我的所有 guice 将如何与演员一起工作。我继续在谷歌上搜索,它有点乱。

我在该主题上找到的最新文档是论文:

http://letitcrash.com/post/55958814293/akka-dependency-injection

http://eng.42go.com/tag/guice/

不提倡同样的事情。

我必须承认我还需要大量阅读,我才刚刚开始学习 akka。我做了很少的例子和红色的东西,但我不想深入了解以后会遇到很多问题。

所以我的问题是截至今天,关于如何将 Akka Actors 与依赖注入一起使用的共识是什么。

可以进行什么样的注射?我们可以将actors与对象/其他actors/....联系起来吗?

无论如何,请以简洁的方式概述一些可以帮助我理解什么是可能的以及什么是最佳实践的东西?

【问题讨论】:

    标签: scala dependency-injection akka actor


    【解决方案1】:

    我知道您正在使用 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不得具有单例范围。

    【讨论】:

    • @MaatDeamon - 你设法让这个与 Guice 一起工作吗?我正在为同样的问题而苦苦挣扎,我的问题已被标记为这个问题。我对你的 Guice 绑定到这个 Producer 尤其感兴趣,因为我无法在这个例子中使用它。
    【解决方案2】:

    最新激活器有Akka with Guice的教程。

    【讨论】:

    猜你喜欢
    • 2015-09-26
    • 2014-03-25
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多