小编aDi*_*DiT的帖子

Guice:将依赖注入@provides 提供者

我有一个模块,我在其中创建了一个提供程序,并且需要该提供程序作为同一模块中另一个提供程序的依赖项。但是,我的设置目前无法做到这一点。我该如何解决这个问题?还应该注意的是,所有依赖项都是第三方库,所以我认为我不应该在我的模块中绑定它(根据我读过的内容)。

不幸的是,由于保密协议,我无法提供实际代码,但可以在下面看到依赖层次结构的示例:

public MyModule extends AbstractModule {
    @Override
    protected void configure() {}

    @Singleton
    @Provides
    public Engine provideEngine(){
        Map<String, String> engineProperties = new HashMap<>();
        engineProperties.put("brand", "some brand");
        engineProperties.put("capacity", "2.6 litres");
        return new Engine(engineProperties);
    }

    @Inject
    @Provides
    public Car provideCar(Engine engine){
        Car car = new Car(engine);
        return car;
    }
}
Run Code Online (Sandbox Code Playgroud)

简而言之,我需要创建一个自定义引擎,事先设置一些属性,然后将该引擎用作 Car 创建的依赖项(请注意,我完全知道我无法在模块中使用 @Inject 注释进行注入,但是,我只是将其作为对我想要实现的目标的参考)。

java dependency-injection guice

5
推荐指数
1
解决办法
4496
查看次数

标签 统计

dependency-injection ×1

guice ×1

java ×1