豆が二つあります。どちらもメール機能を実装しています。1 つは、アプリケーション サーバーにデプロイされている場合にのみ機能します。もう 1 つはテスト用に使用されます。
各開発者と環境のプロファイルがあります。実際にテストするときだけ、テスト Bean を配線したい。テストしていないときは、他の Bean を使用する必要があります。これをアーカイブするにはどうすればよいですか?
@Component
@Profile("localtest")
public class OfflineMail implements Mailing {}
ソリューションのアプローチ:
「デフォルト」を使用してこれをどこかで読みましたが、「dev」のようなプロファイルの「デフォルト」へのフォールバックはないようです:
@Component
@Profile("default")
public class OnlineMail implements Mailing {}
→配線用ビーンが見つからないという例外。
プロファイルを除外する:
@Component
public class OnlineMail implements Mailing {}
-> 「localtest」プロファイルの実行時に固有の例外をスローします。
すべてのプロファイルを追加:
@Component
@Profile("prod")
@Profile("integration")
@Profile("test")
@Profile("dev1")
@Profile("dev2")
@Profile("dev3")
...
public class OnlineMail implements Mailing {}
これは実際に機能していますが、私たちの開発者は「dev<WindowsLogin>」を使用してプロファイルを追加する番号が付けられていません。
@Profile("!localtest") のようなものを使用してもうまくいかないようです。
「特定のBeanが見つからない場合、デフォルトでワイヤー」を取得するより良い方法を知っている人はいますか?