インジェクターの階層構造と createChildInjector() をいつどのように使用するかについての説明をネットで調べましたが、明確で簡潔な説明が見つかりません。
これが私のユースケースです:
- 特定のコンテキスト項目を注入するために使用する基本アプリケーション モジュールがあります。このモジュールは、すべてのインジェクター インスタンスに含める必要があります。
- データベースを検索する検索モジュールがあります
- ElasticSearch を検索する検索モジュールがあります。このクラスのバインディングの一部は、データベース検索モジュールで提供されるバインディングをオーバーライドする必要があります。
たとえば、データベース検索モジュールに以下が含まれているとします。
bind(PlaceSearch.class).to(HibernatePlaceSearch.class);
bind(PersonSearch.class).to(HibernatePersonSearch.class);
また、ElasticSearch モジュールには以下が含まれます。
bind(PersonSearch.class).to(PersonElasticSearch.class);
を含む別のモジュールを作成せずに、データベース検索モジュールからの PlaceSearch バインディングと ElasticSearch モジュールからの PersonSearch バインディングを含むインジェクターを作成する方法はありますか?
bind(PlaceSearch.class).to(HibernatePlaceSearch.class);
bind(PersonSearch.class).to(PersonElasticSearch.class);
? これは Modules.override() の場合ですか? createChildInjector のケースですか? お早めにどうぞ!