私の春ベースのプロジェクトには、クラスを持つコアモジュール(「コア」)があります
@Component
public class Superclass {
// stuff
}
そのインスタンスは、次のようにコード全体に型ごとに挿入されます。
public class AService {
@Autowired
private Superclass superclass;
// service stuff
}
また、コア モジュールに依存する 2 つの他のモジュールがあり、そのうちの 1 つ (「module1」と呼びましょう) はSuperclassを拡張します。
@component
public class Subclass extends Superclass {
// overridden stuff
}
もう一方のモジュール (「module2」) はスーパークラスをそのまま使用します。
ここで、「child1」をコンパイルして実行すると、スーパークラスのインスタンスが予期されるすべての場所でサブクラスのインスタンスが使用されるようにしたいと考えています。だから私は構成クラスを書きます:
@Configuration
public class Module2Configuration {
@Bean
public Superclass superclass(){
return new Subclass();
}
}
これを実行すると、スーパークラスとサブクラスの両方 がインスタンス化されていることがわかりますが、これは明らかに私が望んでいるものではありません。Spring がインスタンス化するタイプを「module1」で指定するにはどうすればよいですか?