用杜松子酒进行现场水平注射



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

UserController controller = new UserController(/*No need to pass models here*/);

但是我的应用程序抛出 NullPointerException,这是我的代码:

用户控制器.java

    public class UserController implements Controller {
        @Inject private UserModel model;
        public UserController() {
          model.doSomething(); // NullPointerException
        }
    }

客户端金模块.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();

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

当构造函数仍在运行时,您的model字段将为 null。它将在完全创建对象后由 GIN 注入UserController。在这里 GWT GIN 场级注入,您可以找到有关它的很好的解释。

相关内容

  • 没有找到相关文章

最新更新