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