
Java での開発では Spring Boot を採用していることが多いです。この記事では、Spring Boot についてお伝えします。
Spring Framework
Spring Boot を知る前に Spring Framework について簡単に知っておくとよいでしょう。
2000年代初頭、大規模な企業向けシステム開発 (エンタープライズ開発) では、EJB (Enterprise JavaBeans) というサン・マイクロシステムズ社が提唱した規格が標準でした。しかし、このEJBは「動かすために超重量級のサーバーが必要」「コードが複雑すぎてテストすらまともにできない」という、開発者にとっては非常に扱いづらい「悪夢」のような代物だったのです。そこに「もっと軽量で、シンプルで、テストがしやすいフレームワークを作ろう」と登場したのが Spring Framework です。
特徴
| DI (Dependency Injection:依存性の注入) | 「オブジェクトの生成と管理を、開発者が new するのではなく、Springフレームワーク側にすべてお任せする」という仕組みです。これにより、クラス同士の結びつきが劇的に緩くなり、個別のクラスの自動テストが圧倒的に書きやすくなりました。 |
| AOP (Aspect Oriented Programming:アスペクト指向プログラミング) | 本質的な業務処理とは別に、どうしても書かなければいけない「ログ出力」「データベースのトランザクション管理 (コミットやロールバック)」「セキュリティチェック」などの共通処理を、本番コードから完全に切り離して外側から合体させる仕組みです。 開発者は、アノテーションを1行書くだけで「このメソッドの開始と終了時に自動でログを出す」「エラーが起きたら自動でロールバックする」といった制御ができるようになりました。 |
欠点
Spring FrameworkのおかげでJava開発は非常にモダンになりました。以下のような様々な便利機能が追加されました。しかし、設定が多すぎて開発を始めるまでが面倒という問題が起きました。Spring Frameworkは柔軟すぎるがゆえに、大量のXMLファイルや設定用のJavaクラスを書く必要がありました。「Webアプリを立ち上げて画面に Hello と出すだけなのに、設定ファイルを何枚も書き、何日もかけて設定を調整しなければならない」という状態に陥ってしまったのです。
| Spring MVC | Webアプリを作る機能 |
| Spring Batch | バッチ処理機能 |
| Spring Data | データアクセス機能 |
| Spring Security | 認証認可の機能 |
Spring Boot
Spring Boot は Spring Framework の欠点を解消したフレームワークです。
Spring Boot では Convention over Configuration と設定よりも規約を重視しています。よく使う設定の組み合わせについては Spring 側で自動設定されています。そのため、開発者側では設定ファイルに触れずに業務用のコードを書き始めることが可能です。
Spring Framework からの変化
| スターター (Starter) によるライブラリの一発導入 | Mavenの設定に spring-boot-starter-web と1行書くだけで、Webアプリに必要な何十個ものJarファイル(Spring本体、ログライブラリ、JSON変換ツールなど)を適切なバージョンの組み合わせで自動で集めてくれます。 |
| Tomcat(Webサーバー)の内蔵 | 昔はEclipseでWebアプリを作ったら、別途PCにTomcatをインストールし、Eclipseと連携させて、重いwarファイルをデプロイして…という手順が必要でした。 Spring BootはJarファイルの中に最初からTomcatが組み込まれているため、普通のJavaプログラム(main メソッド)を実行する感覚で、一瞬でWebサーバーが立ち上がります。 |
| アノテーションによる「設定ゼロ」の実現 | クラスの上に @SpringBootApplication や @RestController と書くだけで、一切の設定ファイルなしでWebアプリとして機能します。 |
Spring Boot 3.x の特徴
Spring Boot 3.x で現在でも使われている大幅バージョンアップが行われました。
| Java17以降が必須 (Java 8の完全終了) | Spring Boot 3.xからは、Java8, 11 などの古いバージョンでは動きません。最低でもJava 17、そして今ならJava 21をターゲットに動かすことが前提となっています。これにより圧倒的に綺麗なコードでWebアプリが書けるようになりました。 |
| GraalVM Native Image の本格対応 (超高速起動) | 従来のJavaは「起動が遅く、メモリを大量に喰う」のが弱点で、クラウド環境では不評でした。Spring Boot 3.xからは、JavaコードをOSが直接理解できるバイナリ(ネイティブアプリ)に一発変換できる仕組みに対応しました。これにより、「起動時間0.1秒、メモリ消費量1/5」といった、かつてのJavaでは考えられなかった超軽量・超高速な動作が可能になっています。 |
Spring Boot での開発

Spring Boot は Jakarta EEの規格・Jakarta EE に含まれるAPIを裏側で採用しています。Spring Boot でのアプリケーションは、上記の階層で動作します。実際の Spring Boot 開発では、ブラウザ上でプロジェクトの構成を選ぶだけで、綺麗な骨組みを自動生成してくれる公式ツール 「Spring Initializr」 を使うのが世界標準です。
それでは、実際の Spring Boot 開発の手順を簡単なサンプルを通して見ていきます。流れは以下の通りです。
- Spring Initializr を用いてプロジェクトの骨組みを作る
- Eclipse にインポート
- ブラウザにメッセージを返すコードを書く
- アプリを起動してブラウザで確認する
1. Spring Initializr を用いてプロジェクトの骨組みを作る

まず、Javaのバージョンや使いたいライブラリなどのプロジェクト構成を Spring Initializr というサイトで作っていきます。Spring Initializr (https://start.spring.io/) にアクセスし、画面上で以下の通りに入力してください。入力後、右上の ADD DEPENDENCIES をクリックすると、別ウィンドウが開きます。
| Project | Maven |
| Language | Java |
| Spring Boot | 4.0.x など (「SNAPSHOT」や「M」と書かれていない最新の安定版) |
| Project Metadata | 識別名 |
| Group | com.example (Maven の groupId) |
| Artifact | demo |
| Java | 21 |

検索窓に web と入力して、Spring Web を選択します。

Spring Web が追加された後、GENERATE をクリックしてください。クリック後、demo.zip というファイルがダウンロードされます。このZIPファイルを解凍してください。解凍したフォルダは、他プロジェクトと同じところに置いておくとよいでしょう。(デスクトップに置いて開発を進めると、フォルダを後で動かそうとするときに面倒です)
2. Eclipse にインポート

Eclipse を起動してください。ファイルメニューからインポートを選択します。

開いたウィンドウから Maven – 既存 Maven プロジェクトを選択します。選択後、次へをクリックしてください。

右上の参照をクリックしてください。クリックした後、ZIPファイルを解凍したあとのフォルダを選択してください。

pom.xml にチェックが付いているのを確認し、完了をクリックしてください。クリック後、Eclipse 上でビルドが始まり、demo プロジェクトが追加されます。
ブラウザにメッセージを返すコードを書く

demo プロジェクト内にあるパッケージ (com.example.demo) を右クリックし、新規 – クラスを選択します。

名前を HelloController と入力して完了をクリックします。
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // ① このクラスがWebのURLを受け付ける窓口であることを宣言
public class HelloController {
@GetMapping("/hello") // ② ブラウザで「/hello」にアクセスしたときにこのメソッドを動かす設定
public String sayHello() {
return "Hello, Modern Spring Boot 4.0.x World!"; // ③ 画面に表示される文字列
}
}HelloController.java を上記のように入力しましょう。
アプリを起動してブラウザで確認する

元々作成されていた DemoApplication.java を開きます。

ソースコードのところで右クリックし、実行から Java アプリケーションを選択してください。コンソール欄に画像のような表示されるはずです。

ブラウザを開き、http://localhost:8080/hello と入力してください。上記画像のように Hello world! が表示されれば成功です。
コメント