インポートの注意事項

クラスパラメータタイプが配列の@import

@import(カタログクラス//は春とBeanとしてクラスに注入することができます
@import(CatConfiguration。クラス// クラス内に配置されたスプリングに注入することができます
パブリック クラスキャット{ 

    公共 ボイド  miaomiao(){ 
        System.out.printlnは( "miaomiao" ); 
    } 
}
@Configuration
 パブリック クラスCatConfiguration { 


    @Bean 
    公共猫猫(){
         返す 新しい)(猫。
    } 
}

図から分かるように、@インポートアノテーションは、Beanの通常のクラスに変換することができ、ばねが容器に加えました。

構成は、バネコンテナクラスに追加することができるが、クラスはああスプリング容器に添加されるように配置されたであろう

 

秘密で@importは()ImportSelectorインターフェイスクラスの実現であるならば、それはクラス名の完全な配列を返します春のコンテナに追加されます。

@import(DogSelector。クラス// 経営の春に追加され返さクラス全体DogSelector列に名前を付けることができます
パブリック クラス DogSelector 実装ImportSelector { 
    @Override 
    パブリック文字列[] selectImports(AnnotationMetadata importingClassMetadata){
         戻り 新しい新しい文字列[] { "com.mccloud.mccloudtest.conf.Dog"、 "xxx.xxx.xxx.xxx"、... } ; //ここでは、管理クラススプリンガーパを返すために適用することができます
    } 
}

// BeanDefinitionRegistrat来登録

@import(DuckBeanDefinitionRegistrat。クラス//が登録さBeanDefinitionRegistratに来ることができます
パブリック クラス DuckBeanDefinitionRegistratは実装ImportBeanDefinitionRegistrar { 
    @Override 
    公共 のボイドregisterBeanDefinitions(AnnotationMetadata importingClassMetadata、BeanDefinitionRegistryレジストリ){ 
        BeanDefinition beanDefinition = 新しい RootBeanDefinition(ダッククラス)。
        registry.registerBeanDefinition( "ダック" 、beanDefinition)。
    } 
}
パブリック クラスダック{ 

    公共 ボイド夢中(){ 
        System.out.printlnは(「夢中」)。
    } 
}

 

おすすめ

転載: www.cnblogs.com/songfahzun/p/11792410.html