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