私のMVPアプリケーションでは、次のようなコードを使用して、プレゼンターとビューを配線しています。
View view = new View();
Presenter presenter = new Presenter(view);
view.setPresenter(presenter);
クラスはView
一時的に無効な状態で構築され、呼び出しによってsetPresenter
修正されます。プレゼンターを構成せずにビューを使用した場合にView
をスローするコードがクラスにあります。IllegalStateException
私は、Springがこの関係を次のような構成と結び付けることができることを望んでいました。
<bean id="presenter" class="com.foo.Presenter">
<constructor-arg ref="view" />
</bean>
<bean id="view" class="com.foo.View">
<property name="presenter" ref="presenter" />
</bean>
これは、長い循環依存の例外で失敗しました。
Springにview
Beanを作成し、presenter
最後にセッターを呼び出す前にBeanを作成するように指示する方法はありview
ますか?
関連する質問は、すべてのBeanが作成された後のSpringsetter依存性注入です。ただし、推奨される解決策の1つは、セッターベースの配線を使用して循環依存関係を解決することです。これは、私がここで失敗していることです。最新のマニュアルも同意しているようです-「循環依存」というタイトルのボックスを参照してください。
考えられる解決策の1つは、コンストラクターではなくセッターによって構成されるいくつかのクラスのソースコードを編集することです。または、コンストラクターインジェクションを避け、セッターインジェクションのみを使用します。つまり、推奨されていませんが、setterインジェクションを使用して循環依存関係を構成できます。