Spring Boot の基本知識 - Spring Boot

  • 作成日:
  • 最終更新日:2025/10/11

Spring Boot について

Spring Boot は、Spring Framework をベースに、依存関係管理や設定を自動化して開発を簡単にするフレームワークです。

Spring Boot 自体は Spring Framework を便利に使えるようにした拡張版のようなもので、一般的にはレイヤードアーキテクチャで利用されることが多いです。

一方、Spring Framework は Java アプリケーション開発全般を支援する総合的なフレームワークです。

パッケージ構成

よくある以下のようなパッケージ構成には、以下のようなものがあります。(これは慣習的な分け方であって、必須ではない)

src/main/java/com/example/demo/
 ├─ DemoApplication.java     ← 起動クラス(@SpringBootApplication)
 ├─ controller/              ← Web層(@Controller, @RestController)
 ├─ service/                 ← ビジネスロジック層(@Service)
 ├─ repository/              ← 永続化層(@Repository, JpaRepository)
 ├─ entity/                  ← DBエンティティ(@Entity)
 ├─ dto/                     ← DTO(画面/API用データ)
 └─ config/                  ← 設定クラス(@Configuration, Security, etc.)

フレームワークの種類

Spring Framework
フレームワーク全体の名前。中核の部分をしめすこともある
Spring AOP
Spring Framework に含まれる
Spring MVC
Mode-View-Controllerアーキテクチャーによるウェブアプリケーションを構築
Spring Boot
主にSpring MVC を使ってウェブアプリケーションを高速開発します
Spring Data
データベースへアクセスするためのフレームワーク
Spring Cloud
分散システム構築のためのツールを提供
Spring Cloud Data Flow
Spring Cloud によるマイクロサービスによって構成
Spring Security
ウェブのセキュリティ機能を提供するフレームワーク
Spring Web Service
RESTfulなウェブサービスを構築するためのフレームワーク
Spring Batch
大量のバッチ処理を最適化するための機能を提供
Spring Shell
シェルプログラム(コマンドラインプログラム)作成のフレームワーク
Spring Mobile
モバイル向けウェブアプリケーション構築のためのフレームワーク
Spring Social
ソーシャルサービス利用のためのライブラリ
Spring Integration
エンタープライズアプリケーション統合のためのフレームワーク
Spring Web Flow
ウェブアプリケーションの画面遷移を管理するフレームワーク
Spring Session
ユーザーセッション情報を管理するためのAPIを提供

pom.xml

pom.xml は Maven プロジェクトで使われる設定ファイル です。

Javaのプロジェクトで必要な依存関係やビルド情報、バージョン管理などをまとめて定義するXMLファイルです。

<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>

上記のようにした場合、以下のようになります。

  1. ビルド時(mvn clean install や IDEでのプロジェクト同期)に、Maven中央リポジトリから MariaDBのJDBCドライバのJARファイル をダウンロード。
  2. ダウンロードされたJARは ローカルリポジトリ に保存され、プロジェクトで使えるようになる。
  3. Spring Bootで spring.datasource.driver-class-name=org.mariadb.jdbc.Driver を設定すれば、自動でMariaDBに接続可能。

Spring Boot で application.yml と application.properties のどちらを使うか

application.properties の特徴

  • シンプルなキー=値形式
  • 小規模プロジェクトや設定が少ない場合に向く
  • 誰でも見慣れている形式(従来の Spring Framework からの延長)
  • YAML のインデントミスで悩むことがない
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/testdb
spring.datasource.username=root
spring.datasource.password=pass

application.yml の特徴

  • 階層構造を自然に表現できる
  • 複雑な設定(DataSource 複数設定、環境ごとの設定など)が見やすい
  • 可読性が高く、設定ファイルが長くなっても整理しやすい
server:
  port: 8080

spring:
  datasource:
url: jdbc:mysql://localhost:3306/testdb
username: root
password: pass
  profiles:
active: dev

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.example.entity