2

コードでデモンストレーションしましょう:

public interface A {
  ....
}

@Profile({"V1"})
@Component
public class B implements A {
....
}

@Profile({"V2"})
@Component
public class C implements A {
....
}

どうすれば動的に (到着するすべてのリクエストで) スプリングを作成して、プロファイルに従って上記のクラスの 1 つを自動配線できますか? 配線時にそのようなことをすることさえ可能ですか?

背景: サーバー側のバージョン管理メカニズムを実装するための良い方法を探しています。リクエストがバージョン 'V1' に属している場合、'V1' プロファイルを持つクラスを自動配線したい、またはその逆を行いたい。(現在、私はリストを自動配線し、それらを繰り返して適切なバージョンを見つけています)。

4

4 に答える 4

1

答えはいいえです。スプリングのように複数のプロファイルをアクティブにしようとする -Dspring.profiles.active=profile1,profile2と、両方のプロファイルに Bean が含まれている場合、 Springは Beanimplements Aの最後のアクティブな定義を使用するためです。implements AB

于 2015-05-03T05:35:40.917 に答える