我一直在网上寻找有关注入器层次结构以及如何/何时使用 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 的案例?提前谢谢!