Java 21
Spring Boot v3.1.0
前回、JavaのWebアプリケーションフレームワークについてのコンテンツを書きました。その中でSpring Framework、Spring Bootをおすすめしたので、Spring BootのWeb開発の始め方について説明していきます。
なお、このコンテンツではmacOSを使い、なおかつEclipseもSTS(Spring Tool Suite)も使わないチュートリアルとなっています。
とてもシンプルなハンズオンになっていますので、実際に手を動かしながらやってみましょう。
HackATAは、エンジニアを目指す方のためのプログラミング学習コーチングサービスです。 経験豊富な現役エンジニアがあなたの学習をサポートします。
✓ 質問し放題
✓ β版公開中(2025年内の特別割引)
このコンテンツではEclipse、STSを使わないことは冒頭で書きましたが、なぜ使わないかについて説明します。
主な理由は、Macで開発するエンジニアはCLI(黒い画面)に慣れており、IDEよりエディタを好む傾向にあるからです。通常、Java開発であればEclipseを使うことが多いですが、Java開発におけるVSCodeの使い方も含めて紹介していきます。
もし、このチュートリアルをEclipse + STSで実施したい場合は、以下のリンクからダウンロードしてください。
なお、同じページに掲載されているVSCodeのSpring Tool 4は使っていくので、いずれにせよ参照してみてください。
それでは早速始めていきます。JavaおよびJDKはすでにインストールされている前提で始めているため、まだの場合はこちらからインストールしておきましょう。
まずはSpringをCLIで扱うためにspring-cliをインストールします。Homebrewを使うため、そちらも未インストールの場合はこちらを参考にしてください。
以下のコマンドでインストールを確認できます。(インストール先のパスが表示されていればOKです)
また、mavenも必要になるため、同じくHomebrewでインストールします。
ここまでできたら、次はSpring Bootプロジェクトを作成します。
以下のコマンドを実行しましょう。
このコマンドでdemoという名前のSpring Bootアプリケーションが作成されます。
早速動かしてみましょう。
初回のみ、必要なパッケージがダウンロードされるので少し時間がかかりますが、最終的に以下のようなSpringのロゴが表示されれば成功です。
http://localhost:8080/greetingにブラウザでアクセスするか、以下のようにcurlでアクセスすると、レスポンスを確認できます。
なお、このgreetingサービスは、パラメータnameをつけることでHello, {name}!という変更できます。
ここで、プロジェクト作成について追加の説明をします。以下のコマンドを実行すると、Springのプロジェクトのテンプレート一覧を表示できます。
これを利用することで、あらかじめ必要なパッケージがプリセットされたプロジェクトを作成できます。今回は余計な知識を省きたいため使いませんが、リストに掲載されているGitHubのURLを見て、使いたいものがあれば使っていきましょう。
コマンドで使うと下記のようになります。なお、デフォルトでwebが選択されているため、何も指定しなくとも先に確認したRESTのレスポンスを得られます。
後から追加したい場合は、以下のコマンドで追加可能です。
さらに、ここで生成されたプロジェクトのファイル群について説明しておきます。
まずはディレクトリ構成を見てみましょう。今回触るのはsrc/以下だけなので、src/以下を表示します。
これは最小限のアプリケーション構成となっており、おおむね以下のようなディレクトリ構成にして開発を進めることが多くなっています。
もちろん、これも小さな例となりますので、実際のプロジェクトだとより複雑になるケースもあります。
最初につかむイメージとしては、上記の形で覚えてください。
では実際に、先述したディレクトリ構成でアプリケーション開発してみましょう。
今回はシンプルにするため、データベースとのやり取りは行いません。
先ほどのディレクトリ構成にするため、restserviceディレクトリは削除してしまいましょう。最低限、blogディレクトリとresourcesディレクトリは作成しておいてください。
通常、IDEでパッケージを作れば自動的に作られ場合もありますが、今回は自分で書いてみましょう。
@SpringBootApplicationを見てみましょう。@xxxはアノテーションと呼ばれ、アプリケーションをコンパイル(コンピュータが理解できるように変換する過程)で特定の処理を実行します。
@SpringBootApplicationは、名前の通りSpring Bootのアプリケーションを作成してくれます。
最初に作成した際はRESTアプリケーションとなっていましたが、今回はわかりやすくHTMLを使えるようにしましょう。
まずはpom.xmlの編集です。以下を追加してください。
これはThymeleafというJavaのテンプレートエンジン(HTMLをレンダリングする機能)を提供するために追加しています。
次にHTTPの受け皿を作ってみましょう。src/main/com/example/blog/controller/BlogController.javaを作成し、編集します。
こうすることで、http://localhost:8080/のトップページでblog_index.htmlをレンダリングするようになります。このblog_index.htmlはsrc/main/resources/templates/に入れましょう。
ここまで書いたら、先ほどと同じく実行してみます。
この状態でhttp://localhost:8080/にアクセスしてみると、blog_index.htmlの内容が表示されます。
このように、Spring Bootの基本的なURLアクセス手続き(ルーティング)は@GetMappingのようなアノテーションで行うことがわかりました。
これだけでは、雰囲気が掴みづらいのでblog_index.htmlにデータを表示してみます。
まずはserviceディレクトリにBlogService.javaを作成し、編集していきましょう。
このコードは、シンプルに"Blog Title 1~3"という文字列のリストを返す関数だけ定義しています。
これをControllerで使っていきます。
//=> 追加と書かれたコードを追加しました。これによって、BlogServiceのgetBlogTitles()によって返された文字列のリストがblogTitlesとして使えるようになります。
blog_index.htmlを編集しましょう。
h1タグの下にタイトルを表示する記述をしました。
ここまでできたら実行してみます。
以下の画像のように表示されれば成功です。

ブログタイトル一覧表示
ここまで、Spring Bootでシンプルなチュートリアルをしてみましたが、実際にはrepositoryでデータベースアクセスするなど、勉強を続けると複雑さは増していきます。しかしながら、明確な書き方ができる上に、多くの機能が自動的に作られているため、慣れれば親しみやすいと感じられるでしょう。
また、勉強の進め方のコツとしてはアノテーションへ慣れることです。
アノテーションで実装内容を理解できるがゆえに、アノテーションを覚えていないと混乱してしまうのがSpringです。最初は戸惑うことも多いでしょうが、求人件数が多い人気フレームワークなのでぜひ学んでみてください。