私はこの問題があります。Guice結合バインディング対@Providesメソッド
public class MasterConfig extends AbstractModule
{
@Override
protected void configure()
{
// TODO Auto-generated method stub
bind(ABCInterface.class)
.to(ABCImpl.class);
}
}
そして、それを実行し、その後、すべてのもの:Guiceのコンフィグはこのようになると
public class ABCImpl
{
@Inject
private XYZ xyz;
}
:
public interface ABCInterface
{
}
とその実装:
は、私のようなクラス定義を持って考えてみましょううまく動作し、XYZが注入されます。
しかし、私はこのようなプロバイダのメソッドを使用する場合:次に
public class MasterConfig extends AbstractModule {
@Override
protected void configure() {
// TODO Auto-generated method stub
}
@Provides
public ABCInterface abc() {
return new ABCImpl();
}
}
を私が注入されたXYZを使用しようとすると、そのオブジェクトがnullのままなので、この場合には、私は、nullポインタ例外を取得します。私は疑問に思っています、これはbeacuseです、私はABCImplの新しいオブジェクトを返すので、Guiceは依存グラフを構築することができません。私がここに間違っていれば私を修正してください?
プロバイダメソッドを書く方法を誰でも提案できるので、configureメソッドで言及したときと同様に、すべてが正しく注入されます。
恐ろしい、感謝します:) –