アノテーションインターフェース SpringBootApplication
@Bean
メソッドを宣言し、auto-configuration
および component scanning
もトリガーする configuration
クラスを示します。これは @SpringBootConfiguration
、@EnableAutoConfiguration
、@ComponentScan
の宣言と同等の便利なアノテーションです。- 導入:
- 1.2.0
- 作成者:
- Phillip Webb, Stephane Nicoll, Andy Wilkinson
オプション要素のサマリー
修飾子と型オプションの要素説明ClassSE<?>[]
特定の自動構成クラスを除外して、適用されないようにします。StringSE[]
適用されないように、特定の自動構成クラス名を除外します。ClassSE<? extends BeanNameGenerator>
Spring コンテナー内で検出されたコンポーネントの命名に使用されるBeanNameGenerator
クラス。boolean
Bean ライフサイクル動作を実施するために、@Bean
メソッドをプロキシするかどうかを指定します。ClassSE<?>[]
アノテーション付きコンポーネントをスキャンするパッケージを指定するための、scanBasePackages()
の型安全な代替。StringSE[]
アノテーション付きコンポーネントをスキャンするベースパッケージ。
要素の詳細
exclude
特定の自動構成クラスを除外して、適用されないようにします。- 戻り値:
- 除外するクラス
- デフォルト:
- {}
excludeName
適用されないように、特定の自動構成クラス名を除外します。- 戻り値:
- 除外するクラス名
- 導入:
- 1.3.0
- デフォルト:
- {}
scanBasePackages
@AliasFor(annotation=org.springframework.context.annotation.ComponentScan.class, attribute="basePackages") StringSE[] scanBasePackagesアノテーション付きコンポーネントをスキャンするベースパッケージ。文字列ベースのパッケージ名に代わる型安全な代替手段としてscanBasePackageClasses()
を使用します。注意 : この設定は、
@ComponentScan
のみのエイリアスです。@Entity
スキャンまたは Spring DataRepository
スキャンには影響しません。それらの場合は、@EntityScan
および@Enable...Repositories
アノテーションを追加する必要があります。- 戻り値:
- スキャンする基本パッケージ
- 導入:
- 1.3.0
- デフォルト:
- {}
scanBasePackageClasses
@AliasFor(annotation=org.springframework.context.annotation.ComponentScan.class, attribute="basePackageClasses") ClassSE<?>[] scanBasePackageClassesアノテーション付きコンポーネントをスキャンするパッケージを指定するための、scanBasePackages()
の型安全な代替。指定された各クラスのパッケージがスキャンされます。この属性によって参照される以外の目的を果たさない特別なノーオペレーションマーカークラスまたはインターフェースを各パッケージに作成することを検討してください。
注意 : この設定は、
@ComponentScan
のみのエイリアスです。@Entity
スキャンまたは Spring DataRepository
スキャンには影響しません。それらの場合は、@EntityScan
および@Enable...Repositories
アノテーションを追加する必要があります。- 戻り値:
- スキャンする基本パッケージ
- 導入:
- 1.3.0
- デフォルト:
- {}
nameGenerator
@AliasFor(annotation=org.springframework.context.annotation.ComponentScan.class, attribute="nameGenerator") ClassSE<? extends BeanNameGenerator> nameGeneratorSpring コンテナー内で検出されたコンポーネントの命名に使用されるBeanNameGenerator
クラス。BeanNameGenerator
インターフェース自体のデフォルト値は、この@SpringBootApplication
アノテーションの処理に使用されるスキャナーが、継承された Bean 名前ジェネレーターを使用する必要があることを示します。デフォルトのAnnotationBeanNameGenerator
またはブートストラップ時にアプリケーションコンテキストに提供されるカスタムインスタンス。- 戻り値:
- 使用する
BeanNameGenerator
- 導入:
- 2.3.0
- 関連事項:
- デフォルト:
- org.springframework.beans.factory.support.BeanNameGenerator.class
proxyBeanMethods
@AliasFor(annotation=org.springframework.context.annotation.Configuration.class) boolean proxyBeanMethodsBean ライフサイクル動作を実施するために、@Bean
メソッドをプロキシするかどうかを指定します。ユーザーコードで直接@Bean
メソッドを呼び出した場合でも、共有シングルトン Bean インスタンスを返します。この機能には、実行時に生成される CGLIB サブクラスを介して実装されるメソッドのインターセプトが必要です。これには、構成クラスやそのメソッドがfinal
の宣言を許可されないなどの制限があります。デフォルトは
true
で、構成クラス内の「Bean 間の参照」と、この構成の@Bean
メソッドへの外部呼び出しを許可します。別の構成クラスから。この特定の構成の@Bean
メソッドのそれぞれが自己完結型であり、コンテナー使用のための単純なファクトリメソッドとして設計されているため、これが必要ない場合は、CGLIB サブクラス処理を回避するためにこのフラグをfalse
に切り替えます。Bean メソッドのインターセプトをオフにすると、
@Configuration
以外のクラスで宣言された場合と同様に、@Bean
メソッドが個別に効果的に処理されます(別名: 「@Bean Lite モード」(@Bean's javadoc
を参照)。@Configuration
ステレオタイプを削除するのと同じ動作になります。- 戻り値:
@Bean
メソッドをプロキシするかどうか- 導入:
- 2.2
- デフォルト:
- true