0 guice
我希望能够在外部(例如在Spring中)定义一个简单的Config bean,并将其注入到Guice模块中。
有什么办法可以做到这一点?
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
测试失败并显示:
com.google.inject.ConfigurationException:Guice配置错误:
1)在guice.InjectionTest $ Thing中找不到合适的构造函数。>类必须具有用@Inject注释的一个(并且只有一个)构造函数或非私有的零参数构造函数。在guice.InjectionTest $ Thing.class处找到guice.InjectionTest $ Thing
1个错误
您在错误消息中有一个答案。
类必须具有用@Inject注释的一个(并且只有一个)构造函数或非私有的零参数构造函数。
@Inject
向Thing
构造函数添加注释
@Inject
public Thing(Config config) {
this.config = config;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
40 次 |
最近记录: |