@InjectILoginServiceloginserviceというフィールドを持つLoginControllerがあります。
GoogleGuiceは次のように構成されています。
これにより、ILoginServiceのインジェクションが作成されます
bind(ILoginService.class).to(LoginService.class); bind(LoginController.class).toInstance(new LoginController());
これはILoginServiceのインジェクションを作成しません
bind(ILoginService.class).to(LoginService.class); bind(LoginController.class);
これはILoginServiceのインジェクションを作成しません
bind(ILoginService.class).to(LoginService.class); bind(LoginController.class).toProvider(new Provider<LoginController>() { public LoginController get() { return new LoginController(); } });
動作しません...ILoginServiceが注入されていません
@Provides public ILoginService loginService() { System.out.println("loginService"); return new LoginService(); } @Provides public LoginController loginController() { System.out.println("loginService controller"); return new LoginController(); }
以下を使用してインジェクターを呼び出す:injector.getInstance(LoginController.class);