考虑以下示例:
public class GuiceExample {
@Inject
private IDataManager dataManager;
public static void main(String[] args) {
Injector injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(IDataManager.class).to(DataManager.class);
}
});
GuiceExample example = injector.getInstance(GuiceExample.class);
example.dataManager.printData();
}
public static interface IDataManager {
void printData();
}
public static class DataManager implements IDataManager {
@Override
public void printData() {
System.out.println("I print data.");
}
}
}
GuiceExample
类初始化后(注入了字段)是否可以立即做些什么?
我尝试添加一个@PostConstruct
方法,以防万一...但是没有被调用。
@PostConstruct
private void fieldsAreInjected() {
System.out.println("Checking if datamanager is null:");
System.out.println(dataManager == null);
}
我试图在网上找到任何东西,但一无所获。有可能还是构造函数上的@Inject
是唯一方法?