我正在尝试进行字段级注入,因此在实例化控制器时不必传递“模型”,例如,
UserController controller = new UserController(/*No need to pass models here*/);
但是我的应用程序抛出NullPointerException,这是我的代码:
UserController.java
public class UserController implements Controller {
@Inject private UserModel model;
public UserController() {
model.doSomething(); // NullPointerException
}
}
ClientGinModule.java
public class ClientGinModule extends AbstractGinModule {
@Override
protected void configure() {
bind(UserModel.class).in(Singleton.class);
}
}
可能是什么问题呢?
最佳答案
在Guice中使用
UserController controller = injector.getInstance(UserController.class);
在杜松子酒中使用:
// Declare a method returning a UserController on your interface extending Ginjector
public UserController getUserController();
// When you need the controller, just call:
injector.getUserController();
以获得完全注入的控制器。