1

私は、Spring xml アプリケーション コンテキストを使用する場合は非常に単純に見えるが、注釈を使用する場合はより曖昧に見えるシナリオを理解しようとしています。

次のようなクラスがあるとします (これはすべて例のためです。クラス名などに注意を払わないでください...):

@Component
public class BusinessLogicImpl implements BusinessLogic {
    @Autowire
    BeanThatTalksWithDataSource beanThatTalksWithDataSource; 

    @Autowire
    BeanThatDoesSomeWork beanThatDoesSomeWork;

}

そして、このBeanを使用する他のBeanがあります

 @Component
 public class MainLogicImpl implements MainLogic {

     @Autowire     
     BusinesLogic businessLogic;

 }

2 つの実装があると仮定しましょうBeanThatTalksWithDataSource。1 つはファイル システム データ ソースで動作し、もう 1 つは DB で動作します。また、BeanThatDoesSomeWork2 つの異なる実装があります。

BeanThatTalksWithDataSourceの 2 つの実装と の2 つの実装の各組み合わせを含む 4 つの異なる構成を作成BeanThatDoesSomeWorkし、最後に正しいバリアントを にロードしたいと考えていMainLogicImplます。

xml ではかなり簡単です。4 つの異なる可能なコンテキストを保持する 4 つの xml ファイルを作成します。注釈を使用する場合、そのようなことと同等のものは何ですか?

@Configuration クラスではなく、アノテーションについて話していることを強調したいと思います。注釈だけでそれが可能かどうかを調べようとしています。

4

2 に答える 2

1

すべての実装に注釈を付け@Profile、アプリケーションの起動時にアクティブなプロファイルを設定します。コンポーネントスキャンが開始されると、アクティブなプロファイルを満たす Bean のみがピックアップされます。

リンク

@Profile ( javadoc )

于 2013-09-17T07:54:22.910 に答える