私は次のクラス構造を持っています
public class Outer{
private Mapper a;
....
private class MapperA implements Mapper {
}
private class MapperB implements Mapper {
}
}
Spring 構成ファイルで、外部 Bean を作成し、MapperA または MapperB のいずれかをプロパティとして割り当てたいと考えています。これは可能ですか?
<bean id="outer" class="mypackage.Outer">
<property name="a" ?????='????' />
</bean>
編集:回答からのフィードバックに基づいた詳細情報:
上記の例で怠惰になりました。Mapper インスタンス変数のパブリック セッター/ゲッターがあります。
すべての Mapper クラスが内部クラスである理由は、それらのクラスが多数存在する可能性があり、それらがこのクラスでのみ使用される可能性があるためです。プロジェクトに大量のクラフトクラスを入れたくないだけです。たぶん、ファクトリメソッドの方が良い考えです。