【发布时间】:2018-02-03 19:50:39
【问题描述】:
我非常熟悉使用@Bean 和@Autowired 进行spring 注入。我已经转而查看 guice,我想知道让它发挥作用的最低要求是什么。以下基本示例引发 NPE:
import javax.inject.Inject;
public class ClassA {
String a = "test";
@Inject
public ClassA() {
System.out.println(a);
}
public void go() {
System.out.println("two");
}
}
以下类试图实例化 ClassA 的新实例:
import javax.inject.Inject;
public class ClassB {
@Inject
ClassA guice;
public ClassB() {
guice.go();
}
public static void main(String[] args) {
ClassB b = new ClassB();
}
}
我尝试了以下各种组合,但均未成功:
public class SupportModule extends AbstractModule {
@Override
protected void configure() {
bind(ClassA.class);
//bind(ClassA.class).to(ClassB.class);
//others too
}
}
我一定是在这里遗漏了一个关键的东西,我不太确定在哪里?我需要手动实例化 guice/配置本身吗?我想我可能会。
guice.go();
在 Spring 中,我可以执行以下操作,我认为 Guice 也可以帮助我执行此操作:
@Bean
public FrameworkProperties properties() {
return new FrameworkProperties();
}
然后只是:
@Autowired
FrameworkProperties props;
【问题讨论】: