0

私たちのプロジェクトの 1 つでは、guice を使用してアプリケーションの依存関係ツリーをセットアップしています。特別な要件により、guiceBinderインターフェイスを拡張するインターフェイスを作成しました。そのインターフェースの実装は、Binderguice によって提供されるインターフェースの実装を使用し、いくつかの新しい機能を追加します。Guice.createInjector(Module... modules)アプリケーションをデバッグしているときに、が呼び出されると、同じバインダーが各モジュールに渡されることに気付きました。最初に、渡された の実装を使用しBinderてインターフェイスを実装するインスタンスを作成しましたが、各モジュールが異なるインスタンスで動作するため、問題が発生しました。だから私の質問は: guice が新しいものを作成するたびに、実装のインスタンスを作成するために使用できるフックはありますか?Binder? フックとは、拡張できるクラスまたは同様のものを意味します。どんなアイデアでも大歓迎です。

ウロス

4

1 に答える 1

1

それは不可能。

クラスcom.google.inject.spi.Elementsはバインディング作業全体を行います。RecordingBinderで直接作成された内部クラスを参照してくださいnew

com.google.inject.spiところで、Guice の内部を拡張したい場合は、外部パッケージは使用しないほうがよいと思います。Guice の内部へのアクセスのほとんどはそこから提供されます。そこに何かが表示されない場合は、おそらく何か問題があり、サポートされていないことが必要です。 Binderはそのようなものです。

于 2013-10-10T18:43:26.137 に答える