首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将非Guice实例注入Guice模块

如何将非Guice实例注入Guice模块
EN

Stack Overflow用户
提问于 2019-08-15 22:28:02
回答 1查看 176关注 0票数 0

我希望能够在外部(例如在Spring中)定义一个简单的Config bean,并将其注入Guice模块。

有办法做到这一点吗?

代码语言:javascript
复制
public class InjectionTest {

    @Test
    public void test() {
        // In reality this would be externally defined
        Config config = new Config("a", "b");

        AbstractModule module = new AbstractModule() {
            @Override
            protected void configure() {
                bind(Config.class).toInstance(config);
            }
        };

        Injector injector = Guice.createInjector(module);
        Thing instance = injector.getInstance(Thing.class);
    }

    static class Thing {
        final Config config;

        public Thing(Config config) {
            this.config = config;
        }
    }

    static class Config {
        final String a, b;

        public Config(String a, String b) {
            this.a = a;
            this.b = b;
        }
    }
}

测试失败的有:

com.google.inject.ConfigurationException: Guice配置错误: 1)在guice.InjectionTest$Thing中找不到合适的构造函数。>类必须有一个(而且只有一个)构造函数带有@Inject注解,或者一个非私有的零参数构造函数。在guice.InjectionTest$Thing.class(未知源)定位guice.InjectionTest$Thing时 1个错误

EN

回答 1

Stack Overflow用户

发布于 2019-08-16 11:39:27

您在错误消息中有一个答案。

类必须有一个(而且只有一个)构造函数带有@Inject注解,或者一个非私有的零参数构造函数。

@Inject注释添加到Thing构造函数中

代码语言:javascript
复制
@Inject
public Thing(Config config) {
  this.config = config;
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57516929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档