同じクラスの2つのインスタンスを作成し、それらに異なるプロパティを注入してから、それらの2つのオブジェクトをアプリケーションの2つの特定の場所に注入できるようにしたいと考えています。
現在、ClientModuleにメソッドがあります...
@Provides
@Named("bean1")
public MainBean getMainBean() {
MainBean mainBean = new MainBean(new SecondaryBean());
return mainBean;
}
そして、プレゼンターなどで次のことを行います。
public MyPresenter(final EventBus eventBus, final MyView view,
@Named("bean1") MainBean bean, TitleSetupData data) {
super(eventBus, view);
this.bean1 = bean1;
}
そしてそれは素晴らしい働きをします。対応する@Namedアノテーションに基づいて、正しいBeanを取得します。
ただし、このアプローチには、@ProvidesメソッドでMainBeanのすべての依存関係を作成して注入する必要があるという弱点があります。
したがって、SecondaryBeanの@Injectアノテーションは、たとえば尊重されません。
私にできることの1つは、関連する依存関係をgetMainBeanメソッドに渡すことですが、別のより洗練された、またはより優れたソリューションがあるのではないかと考えています。
誰かアイデアがありますか?