有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

起初我开始写剧本!具有ControllerProcessorDAO的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) 个答案

  1. # 1 楼答案

    在ProcessorImpl所在的项目中创建guice模块

    public class Module extends AbstractModule {
        protected void configure() {
             bind(Processor.class).to(ProcessorImpl.class);
        }
    }
    

    在任何需要的地方注入处理器

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