自動構成
Spring Boot 自動構成は、追加した jar 依存関係に基づいて、Spring アプリケーションを自動的に構成しようとします。例: HSQLDB
がクラスパス上にあり、データベース接続 Bean を手動で構成していない場合、Spring Boot はメモリ内データベースを自動構成します。
@EnableAutoConfiguration
または @SpringBootApplication
アノテーションを @Configuration
クラスの 1 つに追加して、自動構成をオプトインする必要があります。
@SpringBootApplication または @EnableAutoConfiguration アノテーションを 1 つだけ追加してください。通常、プライマリ @Configuration クラスのみにいずれかを追加することをお勧めします。 |
自動構成の段階的な置き換え
自動構成は非侵襲的です。いつでも、独自の構成を定義して、自動構成の特定の部分を置き換えることができます。例: 独自の DataSource
Bean を追加すると、デフォルトの組み込みデータベースサポートは無効になります。
現在適用されている自動構成とその理由を調べる必要がある場合は、--debug
スイッチを使用してアプリケーションを開始してください。これにより、選択したコアロガーのデバッグログが有効になり、コンソールに状態レポートが記録されます。
特定の自動構成クラスを無効にする
不要な特定の自動構成クラスが適用されている場合は、次の例に示すように、@SpringBootApplication
の exclude 属性を使用して無効にすることができます。
Java
Kotlin
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class MyApplication {
}
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
@SpringBootApplication(exclude = [DataSourceAutoConfiguration::class])
class MyApplication
クラスがクラスパス上にない場合は、アノテーションの excludeName
属性を使用して、代わりに完全修飾名を指定できます。@SpringBootApplication
、exclude
、excludeName
ではなく @EnableAutoConfiguration
を使用したい場合は、こちらもご利用いただけます。最後に、spring.autoconfigure.exclude
プロパティを使用して、除外する自動構成クラスのリストを制御することもできます。
アノテーションレベルとプロパティの使用の両方で除外を定義できます。 |
自動構成クラスは public ですが、パブリック API と見なされるクラスの唯一の側面は、自動構成を無効にするために使用できるクラスの名前です。ネストされた構成クラスや Bean メソッドなど、これらのクラスの実際の内容は内部使用専用であり、直接使用することはお勧めしません。 |