Java 弹簧等效于Guice';这需要重新绑定

Java 弹簧等效于Guice';这需要重新绑定,java,spring,dependency-injection,guice,Java,Spring,Dependency Injection,Guice,在春天,什么是Guice的等价物 对于那些熟悉Spring,但不熟悉Guice的人来说,requireBinding的作用如下: 假设您有4个模块: 安全性 包含一个SignatureHelper接口 webapi 取决于安全性 包含使用签名帮助器的REST API资源 web用户界面 取决于安全性以及 包含也使用签名帮助的HTML资源 webapp 取决于webapi和webui(以及可传递的security) 主要用于将这两个模块打包到一个.war文件中 它还包含SignatureHelp

在春天,什么是Guice的等价物

对于那些熟悉Spring,但不熟悉Guice的人来说,
requireBinding
的作用如下:
假设您有4个模块:

  • 安全性

    包含一个
    SignatureHelper
    接口
  • webapi

    取决于
    安全性

    包含使用签名帮助器的REST API资源
  • web用户界面

    取决于
    安全性
    以及
    包含也使用签名帮助的HTML资源
  • webapp

    取决于
    webapi
    webui
    (以及可传递的
    security

    主要用于将这两个模块打包到一个.war文件中
    它还包含
    SignatureHelper
    接口的实现
webapi
webui
都无法声明自己对
signaturehelp
的绑定,因为它们甚至没有具体的实现。即使他们这样做了,他们也不能同时声明同一个绑定两次

这就是为什么在使用Guice时,
WebAPI
WebUI
都可以简单地指定对
SignatureHelper
类所需的依赖项,并要求加载其Guice模块的应用程序先前绑定了一个依赖项


如何在Spring中完成同样的事情?

Spring具有完全不同的体系结构,几乎不可能找到完全相同的体系结构。可能会有帮助吗?
requireBinding
在Guice中实际上对该场景没有帮助
requireBinding
存在于具有模块动态需要的绑定时。如果依赖项是静态可发现的(例如,因为您的模块为需要注入
SignatureHelper
的类提供了绑定),那么您的模块已经需要为
SignatureHelper
提供绑定。如果省略
requireBinding
调用,您将获得相同的效果,除了更好的错误消息,因为错误将指向实际依赖于
SignatureHelper
@DanielPryden
requireBinding
的类,在计算依赖关系图时,它会给我更好的错误消息,但它也提供了工具支持;这意味着我的IDE可以理解,在
SignatureHelper
上声明依赖项是有效的,即使它被绑定在同一个模块中。它还有助于在代码中记录这种绑定依赖关系。Spring具有完全不同的体系结构,几乎不可能找到完全相同的体系结构。可能会有帮助吗?
requireBinding
在Guice中实际上对该场景没有帮助
requireBinding
存在于具有模块动态需要的绑定时。如果依赖项是静态可发现的(例如,因为您的模块为需要注入
SignatureHelper
的类提供了绑定),那么您的模块已经需要为
SignatureHelper
提供绑定。如果省略
requireBinding
调用,您将获得相同的效果,除了更好的错误消息,因为错误将指向实际依赖于
SignatureHelper
@DanielPryden
requireBinding
的类,在计算依赖关系图时,它会给我更好的错误消息,但它也提供了工具支持;这意味着我的IDE可以理解,在
SignatureHelper
上声明依赖项是有效的,即使它被绑定在同一个模块中。它还帮助在代码中记录此绑定依赖项。