不同项目之间的java Guice依赖项注入
起初我开始写剧本!具有Controller
、Processor
和DAO
的Java项目。我使用Google Guice的@ImplementedBy
作为我的Processor
接口使用依赖注入,我的ProcessorImpl
实现了它
现在,我创建了另一个项目,它也需要Processor
。因此,我提取了另一个单独项目的接口,比如说common,这两个项目将该公共项目用作参考库
问题是,我将无法再使用@ImplementedBy
,因为那个公共项目将没有这两个项目的引用。由于这是不可能的,我不能去依赖注入。在没有给出@ImplementedBy
的情况下,我得到了以下错误:
play.api.UnexpectedException: Unexpected exception[ProvisionException: Unable to provision, see the following errors:
1) No implementation for com.processor.Processor was bound.
有没有办法在配置文件中配置依赖项?或者可以在实现的类中注入依赖关系
# 1 楼答案
在ProcessorImpl所在的项目中创建guice模块
在任何需要的地方注入处理器
如果调用此模块并将其放入根包中,它将自动在Play中注册