Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不同项目之间的Guice依赖项注入_Java_Dependency Injection_Playframework_Guice - Fatal编程技术网

Java 不同项目之间的Guice依赖项注入

Java 不同项目之间的Guice依赖项注入,java,dependency-injection,playframework,guice,Java,Dependency Injection,Playframework,Guice,起初我开始写剧本!具有控制器、处理器和DAO的Java项目。我使用GoogleGuice的@ImplementedBy为我的处理器接口使用依赖注入,我的处理器MPL实现了它 现在,我已经创建了另一个项目,它也需要处理器。因此,我提取了另一个单独项目的接口,比如说common,这两个项目将该公共项目用作参考库 问题是,我将无法再使用@ImplementedBy,因为该公共项目将没有这两个项目的引用。因为这是不可能的,所以我不能进行依赖注入。如果没有给出@ImplementedBy,我将得到以下错误

起初我开始写剧本!具有
控制器
处理器
DAO
的Java项目。我使用GoogleGuice的
@ImplementedBy
为我的
处理器
接口使用依赖注入,我的
处理器MPL
实现了它

现在,我已经创建了另一个项目,它也需要
处理器
。因此,我提取了另一个单独项目的接口,比如说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.

有没有办法在配置文件中配置依赖项?或者可以在实现的类中注入依赖项吗?

在ProcessorImpl所在的项目中创建一个GUI模块

public class Module extends AbstractModule {
    protected void configure() {
         bind(Processor.class).to(ProcessorImpl.class);
    }
}
在任何需要的地方注入处理器


如果调用此模块并将其放入根包中,它将自动向Play注册

我也创建了这个模块。但你所说的根包是什么意思?我创建了自己的包并将其放在该包中。另外,我在函数顶部使用了
@Override
。如果您已经将其放入包中,请检查是否已在application.conf文件中添加play.modules.enabled+=“modules.Module”。