java - 在 java main 中注入(inject)提供程序

标签 java guice

我有一个使用 Guice 的自定义提供程序,其伪代码如下:

public class MyProvider implements Provider<String> {
    public String get() {
        System.out.println("Called MyProvider.get()");
        return "abcd";
    }
}

public class MyModule extends AbstractModule {
    protected void configure() {
        bind(String.class).toProvider(MyProvider.class);
    }
}

public class MyManager {
    private MyProvider<String> myProvider;

    @Inject
    public MyManager(Provider<String> myProvider) { this.myProvider = myProvider; }
}

有一个 MyManager 对象,代表 Guice 连接后我们将来要构建的内容。现在为了真正开始这个,我有点迷失了......

public static void main(String[] args) {
    Injector injector = Guice.createInjector(new MyModule());

    // not sure what to do here.  This doesn't work but I thought it'd be something like this
    MyManager mgr = new MyManager(injector.getProvider(MyProvider.class));
}

最佳答案

我不确定这是否是“首选方式”,但这似乎有效:

Injector injector = Guice.createInjector(new MyModule());
MyManager mgr = injector.getInstance(MyManager.class);

想一想是否可以这样做?

关于java - 在 java main 中注入(inject)提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30579474/

相关文章:

Java-对象存在困境

jersey - 在 Dropwizard 中运行测试时没有安装 ServiceLocatorGenerator 错误

java - 如何在使用反射创建的对象上注入(inject)东西?

java - 另一个 Guice + Jersey 错误 NoSuchMethodError

java - 在 listitem click 和 myactivity 在 Tabactivity 中使用该文本时,文本到语音不起作用

java - 使用动态字段名称反序列化嵌套的 JSON 对象

java - 更改对对象 java 的引用

java - JPanel 上的文本页面

java - 如何使用 guice 实现全局状态?

java - 使用 Guice 对同一接口(interface)的多个实现进行依赖注入(inject)