ブートストラップの自動設定とは何か?(Spring BootのAuto Configuration)
こんにちは。ゆうせいです。
Spring Bootを使っていると、特に設定をしなくてもアプリが動くことに気づきますよね。
✅ 「なぜSpring Bootは設定なしで動くの?」
✅ 「ブートストラップの自動設定とは何?」
✅ 「どのように設定が自動で行われるの?」
結論から言うと、これは Spring Bootの「自動設定(Auto Configuration)」機能 によるものです。
今回は、このブートストラップの自動設定(Bootstrap Auto Configuration) について分かりやすく解説します!
1. ブートストラップの自動設定(Auto Configuration)とは?
「ブートストラップの自動設定」 とは、Spring Bootが適切な設定を自動で行う仕組み のことです。
これは 「Auto Configuration(オートコンフィギュレーション)」 とも呼ばれます。
📌 例:
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
このコードだけで、以下の設定が自動で行われます。
- Tomcatサーバーの起動
- Spring MVCの設定
- DataSource(データベース接続)の設定
- Beanの自動登録
- Spring Securityのデフォルト設定(ログイン画面)
通常のSpringアプリなら、これらの設定をすべて手動でXMLやJavaコードに書く必要がありますが、Spring Bootでは自動で適用されます!
2. 自動設定の仕組み
Spring Bootの自動設定は、主に @EnableAutoConfiguration
によって動作します。
実は、@SpringBootApplication
には @EnableAutoConfiguration
が含まれています。
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
✅ @SpringBootApplication
の中身
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Configuration
@ComponentScan
@EnableAutoConfiguration
public @interface SpringBootApplication {
}
つまり、@SpringBootApplication
を使うことで、自動設定(Auto Configuration)が有効になる のです!
3. どのような設定が自動で行われる?
Spring Bootの自動設定(Auto Configuration)では、以下のような機能が自動でセットアップされます。
✅ ① Webアプリ関連の自動設定
自動設定 | 説明 |
---|---|
Spring MVC | spring-boot-starter-web を入れると、Spring MVCが自動設定される |
Thymeleaf | spring-boot-starter-thymeleaf を入れると、テンプレートエンジンが設定される |
エラーページ | error.html を作ると、カスタムエラーページが適用される |
✅ ② データベース関連の自動設定
自動設定 | 説明 |
---|---|
DataSource(JDBC接続) | spring-boot-starter-data-jpa を入れると、自動でDB接続が設定される |
H2(組み込みDB) | spring-boot-starter-data-jpa + h2 を入れると、H2が自動でセットアップされる |
Hibernate(ORM) | spring-boot-starter-data-jpa を入れると、自動でJPAの設定が適用される |
✅ ③ セキュリティ関連の自動設定
自動設定 | 説明 |
---|---|
Spring Security | spring-boot-starter-security を入れると、自動でログイン画面が設定される |
デフォルトのユーザー作成 | user というユーザーとランダムなパスワードが作成される |
✅ ④ その他の自動設定
自動設定 | 説明 |
---|---|
Actuator | spring-boot-starter-actuator を入れると、アプリの状態監視が可能になる |
Jackson(JSON変換) | spring-boot-starter-web を入れると、自動でJSONとオブジェクトの変換が有効になる |
4. 自動設定をカスタマイズする
自動設定のままでは都合が悪い場合、自分で設定を上書きできます。
✅ (1) application.properties
で設定を変更
例えば、Spring Bootのデフォルトのポートは 8080
ですが、application.properties
で変更できます。
server.port=8081
✅ (2) @Configuration
でBeanをカスタマイズ
もし デフォルトのDataSourceが不要 なら、自分でカスタム設定できます。
@Configuration
public class DataSourceConfig {
@Bean
public DataSource customDataSource() {
return DataSourceBuilder.create()
.url("jdbc:mysql://localhost:3306/mydb")
.username("user")
.password("password")
.build();
}
}
➡ これにより、Spring BootのデフォルトのDB設定が上書きされます。
5. 自動設定を無効にする方法
Spring Bootの自動設定を 無効にする こともできます。
✅ (1) @EnableAutoConfiguration
を使わない
もし 自動設定を使いたくない 場合、@SpringBootApplication
の代わりに @Configuration
を使い、自動設定を無効にできます。
@Configuration
public class MyConfig {
// ここで手動設定を行う
}
✅ (2) @SpringBootApplication(exclude = ...)
で特定の自動設定を無効化
特定の自動設定だけを無効にしたい場合、exclude
を使います。
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class MyApplication { ... }
➡ これにより、DataSource(DB接続)の自動設定だけを無効化 できます。
6. まとめ
項目 | 説明 |
---|---|
ブートストラップの自動設定とは? | Spring Bootが必要な設定を自動で適用する仕組み |
有効になる条件 | @SpringBootApplication に @EnableAutoConfiguration が含まれる |
自動設定されるもの | Web(MVC, Thymeleaf), DB(JPA, H2), セキュリティ(ログイン), Actuator など |
カスタマイズ方法 | application.properties や @Configuration を使う |
無効化方法 | exclude = {xxx.class} を使う |
7. 結論
🚀 Spring Bootの「ブートストラップの自動設定」とは、設定を自動化する仕組み(Auto Configuration)!
🚀 @SpringBootApplication
によって @EnableAutoConfiguration
が有効になる!
🚀 カスタマイズや無効化も可能なので、必要に応じて設定を変更できる!
これで、Spring Bootの自動設定の仕組みがスッキリ理解できましたね!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。