加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala-guice和辅助注射

发布时间:2020-12-16 18:30:25 所属栏目:安全 来源:网络整理
导读:我已经使用google-guice和辅助注射机制已经有一段时间了.因为我在斯卡拉,只是发现 scala-guice,我也有兴趣使用它.但是我对如何使用辅助注射感到困惑.没有使用辅助注射的例子. 因此我的问题是:是否可以使用scala-guice辅助注射,如果是,请任何人提供一个简单
我已经使用google-guice和辅助注射机制已经有一段时间了.因为我在斯卡拉,只是发现 scala-guice,我也有兴趣使用它.但是我对如何使用辅助注射感到困惑.没有使用辅助注射的例子.

因此我的问题是:是否可以使用scala-guice辅助注射,如果是,请任何人提供一个简单的例子吗?

此外,对于google-guice,我使用以下库:javax.inject.jar,guice-3.0.jar,guice-assistedInject.jar.在这种情况下,我应该删除guice-3.0.jar?

解决方法

无论如何都可以在 Scala中使用辅助注射.如果scala-guice不提供工具,您可以直接使用辅助注入API:

trait Entity { ... }

class EntityImpl @Inject (
  @Assisted assistedDep: AssistedDependency,normalDep: NormalDependency
) extends Entity { ... }

trait EntityFactory {
  def create(assistedDep: AssistedDependency): Entity
}

class YourModule extends AbstractModule with ScalaModule {
  def configure {
    install(new FactoryModuleBuilder()
      .implement(classOf[Entity],classOf[EntityImpl])
      .build(classOf[EntityFactory])
    )
    bind[NormalDependency].to[NormalDependencyImpl]
  }
}

没错,它不是很漂亮,但它完成了工作.

另外,你绝对不应该删除guice-3.0.jar.你为什么一开始就想到它? javax.inject.jar包含JSR-330注释,guice-3.0.jar包含Guice本身,guice-assistedinject-3.0.jar包含辅助注入扩展.如果您需要具有辅助注射支持的Guice,所有这些罐子都很重要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读