Spring-スイープ素子


スプリングシートを登録する従来の方法は、XMLで登録するか、javaコードの@Beanを使用してプロファイルに次のようにリストします.
@Configuration
public class AppConfig {

    @Bean
    public aRepository aRepository() {
        return new ARepository();
    }

    @Bean
    public bClass bClass(){
        return new BClass();
    }
}
登録するスペースがいくつかない場合は、問題が大きくなり、一目で見ることができますが、何百ものスペースがある場合は、1つ1つ登録するのも1つのことで、漏れが発生することもあります.
したがってspringはconfigクラスを必要とせずに空の素子スキャンを自動的に登録することができる.
@ComponentScan
構成部品スキャンを設定できます.
@Configuration
@ComponentScan
public class AutoAppConfig {
}
AutoAppConfigクラスを作成し、@Configurationと@ComponentScan宣言を貼り付けます.

  • excluddeFilters:構成部品スキャンから特定の言語、クラスを除外できます.
    ex)
    @CompoenetScan(excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class))

  • basePackages:スキャンターゲットナビゲーションの開始位置を指定します.このパッケージを含むすべてのサブパッケージをスキャンします.指定されていない場合、@ComponentScan付きクラスパッケージが開始位置になります.
    ex)
    @ComponentScan(basePackages = "hello.core")
  • スプリングガイドを使用する場合、代表的な起動情報@SpringBootApplicationは通常、@ComponentScanを含むプロジェクトルートディレクトリに配置されます.したがって、設定する必要はありません.
    @Component
    コンポーネントスキャンでは@Component宣言付きクラスが空に登録され、クラス名の最初のアルファベットが小文字で置き換えられます.
    ex) MemberRepository -> memberRepository
    空の名前を指定する場合は、@Component(「空の名前」)に直接割り当てることができます.ただし、名前が空の場合は、後で登録する空に上書きされます.
    以下に@Component宣言があり、スキャンの範囲内に含まれます.

  • @Controller

  • @Service

  • @Repository

  • @Configuration
    ソース
    Infolearn金英漢先生、スプリングコア原理-基本編