我正在尝试进行字段级注入,因此在实例化控制器时不必传递“模型”,例如,

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();


以获得完全注入的控制器。

09-26 08:39