はい、承知いたしました。Java/Spring開発初心者向けのSpring Tool Suite (STS) に関する詳細なガイド記事を作成します。約5000語を目指し、STSの導入から基本的なSpring Bootアプリケーションの作成、実行、デバッグまでを網羅します。
Java/Spring開発環境ならSTS!初心者向けガイド
JavaとSpring Frameworkを使ったアプリケーション開発に興味がありますか? もしそうなら、統合開発環境(IDE)選びは非常に重要です。そして、Spring開発において、デファクトスタンダードとも言える強力なツールが Spring Tool Suite (STS) です。
このガイドでは、Java/Spring開発を始めたばかりの皆さんに向けて、STSがどのようなツールなのか、なぜSpring開発に適しているのか、そして実際にSTSを使って簡単なSpring Bootアプリケーションを開発するための手順を、約5000語というボリュームで詳細に解説します。
プログラミング初心者の方、Javaはある程度知っているけどSpringは初めて、あるいは他のIDEを使った経験はあるけどSTSは初めて、といったあらゆるレベルの「Spring初心者」の方々が、この一冊(この記事)を読めばSTSを使い始めて基本的な開発ができるようになることを目指します。
さあ、Spring開発の強力な味方、STSの世界へ飛び込みましょう!
序章:なぜSpring開発にSTSが推奨されるのか?
Javaエコシステムには様々な統合開発環境(IDE)が存在します。Eclipse、IntelliJ IDEA、NetBeansなどが有名です。それぞれに特徴があり、多くのJava開発者はこれらのIDEを利用しています。
しかし、Spring Frameworkを使った開発においては、Spring Tool Suite (STS) がしばしば推奨されます。STSは、Eclipseをベースに構築されたIDEですが、Spring開発に特化した様々な機能拡張やツールが統合されています。
なぜSTSを使うとSpring開発がスムーズになるのでしょうか? 主な理由は以下の通りです。
- Spring開発に特化した機能: STSは、Springの設定ファイル(XMLやJavaConfig)、Spring Bootのプロパティファイル、依存関係など、Spring固有の要素に対する強力なコード補完、検証、ナビゲーション機能を提供します。これにより、手作業での設定ミスを減らし、効率的に開発を進めることができます。
- Spring Bootとの高い親和性: 近年、Spring開発の主流となっているSpring Bootとの連携が非常に強力です。Spring Bootプロジェクトの作成ウィザード、アプリケーションの起動・管理を容易にするSpring Boot Dashboardなど、Spring Boot開発を加速する機能が豊富に用意されています。
- 開発状況の可視化: アプリケーションのコンポーネント間の依存関係や、実行時に有効になっている設定などを視覚的に確認できる機能があり、アプリケーションの構造理解やデバッグに役立ちます。
- Eclipseベース: STSはEclipseを基盤としているため、Eclipseの持つ強力なJava開発機能(コード補完、リファクタリング、デバッグ機能など)をそのまま利用できます。Eclipseに慣れている開発者にとっては、学習コストが低いというメリットもあります。
- 無償提供: STSは無償で利用できます。これにより、個人学習から企業での利用まで、気軽に導入することが可能です。
これらの理由から、STSはSpring開発を始めるにあたって非常に心強いパートナーとなります。もちろん、他のIDEでもSpring開発は可能ですが、特にSpring Bootを使ったモダンなSpring開発においては、STSの提供する機能が開発効率を大幅に向上させてくれます。
本ガイドでは、このSTSを使いこなすための基礎をしっかりと学び、最初のSpring Bootアプリケーションを完成させることを目標とします。
第1章:STSを使い始める前に:準備編
STSをインストールして使い始める前に、いくつかの準備が必要です。最も重要なのは、Javaの開発環境が整っていることです。
1.1 Java Development Kit (JDK) のインストール
STSはJavaアプリケーションであり、開発対象もJavaアプリケーションです。したがって、STSを実行するため、そしてSTSでJavaコードをコンパイル・実行するために、Java Development Kit (JDK) が必要です。
- JDKとは?
JDKは、Javaプログラムを開発するためのツールセットです。Javaコンパイラ (javac) やJava仮想マシン (JVM)、標準ライブラリなどが含まれています。Javaプログラムを実行するだけであればJRE (Java Runtime Environment) でも可能ですが、開発にはJDKが必須です。 - どのバージョンをインストールすべきか?
STSは特定のJDKバージョンを必要としますが、基本的には最新の長期サポート (LTS) バージョン、または現在開発しようとしているSpring BootのバージョンがサポートしているJDKバージョンを選ぶのが良いでしょう。2024年現在であれば、JDK 17やJDK 21などがLTSバージョンとして広く利用されています。
迷う場合は、最新のLTSバージョン(例えばAdoptium Temurin, Oracle JDKなど)をインストールしてください。 -
インストール方法
各ベンダー(Oracle, Adoptiumなど)の公式サイトからインストーラをダウンロードして実行します。OSに応じた手順でインストールを行ってください。インストール後、コマンドプロンプトやターミナルを開き、以下のコマンドを実行してJDKが正しくインストールされ、パスが通っているか確認しましょう。bash
java -version
javac -versionバージョン情報が表示されればOKです。もし表示されない場合は、システムの環境変数
PATH
にJDKのbin
ディレクトリへのパスが設定されているか確認し、必要であれば設定してください。また、Spring開発ではJAVA_HOME
環境変数を設定することも一般的です。- Windows: システムのプロパティ -> 環境変数 から設定します。
- macOS/Linux: シェル設定ファイル(例:
~/.bash_profile
,~/.zshrc
)にexport JAVA_HOME=/path/to/your/jdk
やexport PATH="$JAVA_HOME/bin:$PATH"
のように追記します。
1.2 システム要件の確認
STSはそれなりにリソース(メモリ、CPU)を消費するアプリケーションです。快適に開発を行うためには、公式サイトで推奨されるシステム要件を満たしているか確認しておきましょう。特にメモリは重要で、8GB以上を推奨します(可能であれば16GB以上)。
第2章:Spring Tool Suite (STS) のインストール
JDKの準備ができたら、いよいよSTSをインストールします。
2.1 STSのダウンロード
STSの公式ダウンロードページにアクセスします。
- STS公式ダウンロードページ: https://spring.io/tools
このページには、Windows、macOS、Linux向けのダウンロードリンクがあります。通常は「Bundles」という項目から、OSに応じたインストーラやZIPアーカイブを選択します。
- Spring Tools 4 for Eclipse: これが現在のSTSの正式名称です。最新バージョンを選びましょう。
- OSを選択: 自分のOS (Windows x86_64, macOS (ARM64 or x86_64), Linux x86_64) に合ったものをダウンロードします。
- ダウンロード形式: Windowsでは
zip
ファイル、macOSではdmg
ファイル、Linuxではtar.gz
ファイルが一般的です。
ダウンロードには少し時間がかかる場合がありますので、完了まで待ちましょう。
2.2 STSのインストール(展開)
ダウンロードしたファイル形式によってインストール手順が異なります。
- Windows (.zip):
ダウンロードしたZIPファイルを、インストールしたい任意のディレクトリ(例:C:\dev\sts-4.x.y
など)に展開(解凍)します。インストール済みのJava(JDK)に日本語などのマルチバイト文字を含むパス名があると起動できない場合があるため、展開先のパスにはスペースや日本語を含めないことを推奨します。 - macOS (.dmg):
ダウンロードしたDMGファイルをダブルクリックして開きます。通常、アプリケーションアイコンが表示されるので、これをApplicationsフォルダにドラッグ&ドロップすればインストール完了です。 -
Linux (.tar.gz):
ダウンロードしたtar.gzファイルを、インストールしたい任意のディレクトリに展開します。bash
tar -xzf spring-tool-suite-4.x.y.RELEASE-eX.y.z-linux-x86_64.tar.gz -C /opt/sts(
/opt/sts
は任意の展開先ディレクトリです)
インストール(展開)はこれで完了です。特別なインストーラを実行するわけではなく、ファイルを適切な場所に置くだけというシンプルな形式です。
2.3 STSの起動
インストール(展開)したディレクトリに、実行ファイルがあります。
- Windows: 展開したフォルダ内の
SpringToolSuite4.exe
をダブルクリックします。 - macOS: Applicationsフォルダにコピーした
SpringToolSuite4
アイコンをダブルクリックします。 - Linux: 展開したフォルダ内の
SpringToolSuite4
実行ファイルをターミナルから実行するか、デスクトップ環境でランチャーを作成して起動します。
初めて起動する際には、いくつかの設定が必要です。
-
Workspace (ワークスペース) の選択:
STS(およびEclipse)は、プロジェクトや設定を保存するための作業ディレクトリとして「ワークスペース」を使用します。起動時に、どのワークスペースを使用するか尋ねられます。- ワークスペースは、ソースコードファイル、設定ファイル、ビルド結果などが格納される場所です。
- プロジェクトごとに異なるワークスペースを使用することも、複数のプロジェクトを同じワークスペースに置くことも可能です。最初は一つワークスペースを作成して、そこにプロジェクトを置いていくのが分かりやすいでしょう。
- ワークスペースのパスも、日本語やスペースを含まない、分かりやすい場所に設定することを推奨します(例:
C:\Users\YourName\sts-workspace
,/Users/YourName/Documents/sts-workspace
など)。 - 「Use this as the default and do not ask again」にチェックを入れると、次回以降はこの選択画面をスキップできます。慣れないうちはチェックを入れずに、起動ごとにワークスペースを確認するのが良いかもしれません。
ワークスペースのパスを入力または選択し、「Launch」ボタンをクリックします。
-
起動完了:
しばらく待つとSTSが起動し、Welcome画面が表示されます。Welcome画面は、STSの概要や便利な機能へのリンクがまとめられています。内容を確認したら、画面を閉じても構いません。
これでSTSの起動が完了し、IDEのメインウィンドウが表示されます。
2.4 STSの基本的なUI(ユーザーインターフェース)
STSのメインウィンドウは、いくつかの領域に分かれています。Eclipseベースなので、Eclipseを使ったことがある方は馴染みがあるでしょう。
- メニューバー: 画面上部にあり、ファイル操作、編集、検索、実行、ウィンドウレイアウトの変更など、様々な操作を行うためのメニューが含まれています。
- ツールバー: メニューバーのすぐ下にあり、よく使う機能(保存、実行、デバッグ、新しいプロジェクト作成など)のアイコンが並んでいます。
- エディタ領域: 画面中央の大部分を占める領域で、ソースコードや設定ファイルなどを編集します。複数のファイルを開いている場合は、タブで切り替えて表示できます。
- ビュー (Views): エディタ領域の周囲に配置されている小さなウィンドウ群です。プロジェクトのファイル一覧を表示する「Package Explorer」(または「Project Explorer」)、コンソール出力やエラーメッセージを表示する「Console」、問題点を一覧表示する「Problems」、プログラムの構造を表示する「Outline」など、開発に必要な様々な情報が表示されます。ビューは表示/非表示を切り替えたり、配置を自由に変更したりできます。
- パースペクティブ (Perspectives): 特定の開発タスク(Java開発、デバッグ、Git操作など)に最適化されたビューの配置セットです。ウィンドウ右上にあるボタンで切り替えたり、新しいパースペクティブを開いたりできます。「Java」パースペクティブが一般的なJava開発用、「Debug」パースペクティブがデバッグ用としてよく使われます。STSには「Spring」パースペクティブなどもあります。
これらのUI要素を操作して開発を進めていきます。最初は戸惑うかもしれませんが、使いながら慣れていきましょう。
第3章:初めてのSpring Bootプロジェクト作成
STSの起動と基本的なUIの確認ができたところで、いよいよ最初のSpring Bootプロジェクトを作成します。Spring Bootは、Spring Frameworkを使ったアプリケーション開発を「より素早く、より簡単に」行うためのフレームワークです。STSはSpring Bootプロジェクトの作成を強力にサポートしています。
3.1 新しいSpring Starter Projectの作成ウィザード
Spring Bootプロジェクトを作成する最も簡単な方法は、STSに組み込まれているウィザードを使うことです。
-
ウィザードの起動:
- メニューバーから
File
->New
->Spring Starter Project
を選択します。 - または、ツールバーの「New」ボタン(白い紙のアイコン)をクリックし、ドロップダウンメニューから
Spring Starter Project
を選択します。 - または、ショートカットキー
Alt+Shift+N
を押してからSpring Starter Project
を選択します。
「New Spring Starter Project」ウィザードウィンドウが表示されます。
- メニューバーから
-
Project Information (プロジェクト情報) の設定:
この画面で、作成するプロジェクトの基本的な情報を設定します。- Name: プロジェクト名です。ワークスペース内で一意になるように付けます。例:
myfirstwebapp
- Type: ビルドツールを選択します。
Maven
またはGradle
が選べます。初心者には広く使われているMaven
を推奨します。 - Java Version: プロジェクトで使用するJavaのバージョンを選択します。インストール済みのJDKバージョンに合わせるか、それ以下のバージョンを選択します。例:
17
または21
- Language: 使用する言語です。
Java
を選択します。 - Packaging: アプリケーションのパッケージ形式です。Webアプリケーションの場合は通常
Jar
またはWar
を選択しますが、Spring Bootの組み込みWebサーバーを使う場合はJar
が一般的で手軽です。例:Jar
- Group: Maven/GradleのGroup IDにあたります。組織やプロジェクトのユニークな識別子として使われます。Javaのパッケージ命名規約に準じて、通常はドメイン名を逆順にした形式を使用します。例:
com.example
- Artifact: Maven/GradleのArtifact IDにあたります。プロジェクト名を小文字でハイフン区切りにしたものが一般的です。例:
myfirstwebapp
- Version: プロジェクトのバージョンです。初期値は
0.0.1-SNAPSHOT
となっていることが多いです。開発中はSNAPSHOT
サフィックスを付けるのが一般的です。 - Description: プロジェクトの説明です(任意)。
- Package: Javaのベースパッケージ名です。通常、Group IDとArtifact IDを組み合わせて自動生成されますが、修正することも可能です。このパッケージ名が、後述する
@SpringBootApplication
アノテーションを持つメインクラスのパッケージとなります。例:com.example.myfirstwebapp
これらの情報を入力したら、「Next」ボタンをクリックします。
- Name: プロジェクト名です。ワークスペース内で一意になるように付けます。例:
-
Dependencies (依存関係) の選択:
この画面が、Spring Bootプロジェクト作成ウィザードの非常に便利な点です。アプリケーションに必要なライブラリ(依存関係)を、検索して簡単に追加できます。STSは、指定したSpring Bootバージョンで利用可能な依存関係をSpring Initializrというサービスから取得して表示します。ここでは、簡単なWebアプリケーションを作成するために、最低限必要な依存関係を追加します。
- 検索フィールドに「Web」と入力します。候補が表示されるので、「Spring Web」を選択して右側のリスト(Selected Dependencies)に追加します。これにより、Spring MVCや組み込みのTomcatなどのWebアプリケーション開発に必要なライブラリが追加されます。
- 他にも、開発に便利な「Spring Boot DevTools」も追加しておきましょう。コード変更時にアプリケーションを自動的に再起動してくれるなど、開発効率を向上させます。検索フィールドに「DevTools」と入力し、「Spring Boot DevTools」を選択して追加します。
- 簡単なデータアクセス層が必要なら「Spring Data JPA」や「H2 Database」などを、セキュリティ機能が必要なら「Spring Security」などをここで追加できます。今回は最小限で進めます。
選択した依存関係が右側のリストに表示されていることを確認したら、「Finish」ボタンをクリックします。
-
プロジェクトの生成とインポート:
STSが指定された情報と依存関係に基づいてプロジェクト構造を生成し、ワークスペースにインポートします。これには少し時間がかかる場合があります。画面右下には、インポートの進行状況が表示されます。プロジェクトが正常に作成されると、Package Explorerビューに新しいプロジェクトが表示されます。MavenまたはGradleが依存関係をダウンロードし、プロジェクトをビルドします。このプロセスもバックグラウンドで実行されます。
3.2 生成されたプロジェクト構造の確認
作成されたプロジェクトを展開して、その構造を確認してみましょう。Package Explorerビューで、作成したプロジェクト名(例: myfirstwebapp
)の左側にある矢印をクリックします。
標準的なSpring Boot Mavenプロジェクトの場合、以下のような構造になっています(Gradleの場合は一部ファイル名やディレクトリ構成が異なります)。
myfirstwebapp
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myfirstwebapp
│ │ │ └── MyfirstwebappApplication.java <- メインアプリケーションクラス
│ │ └── resources
│ │ ├── application.properties <- 設定ファイル
│ │ ├── static <- 静的コンテンツ(HTML, CSSなど)
│ │ ├── templates <- テンプレートファイル(Thymeleaf, FreeMarkerなど)
│ │ └── banner.txt <- アプリケーション起動時のバナー
│ └── test
│ └── java
│ └── com
│ └── example
│ └── myfirstwebapp
│ └── MyfirstwebappApplicationTests.java <- テストクラス
├── target <- ビルド出力ディレクトリ
├── .gitignore <- Gitで無視するファイル設定
├── .mvn <- Maven Wrapper関連ファイル
├── mvnw <- Maven Wrapper実行スクリプト (Linux/macOS)
├── mvnw.cmd <- Maven Wrapper実行スクリプト (Windows)
└── pom.xml <- Mavenプロジェクト設定ファイル (POM)
src/main/java
: アプリケーションのJavaソースコードを配置するディレクトリです。パッケージ構造(com.example.myfirstwebapp
)の中に、アプリケーションのエントリポイントとなるクラス(例:MyfirstwebappApplication.java
)が生成されています。src/main/resources
: 設定ファイルや静的リソース、テンプレートなどを配置するディレクトリです。application.properties
(またはapplication.yml
)はSpring Bootの自動設定やカスタム設定を記述する重要なファイルです。src/test/java
: テストコードを配置するディレクトリです。基本的なテストクラスが生成されています。pom.xml
: Mavenのプロジェクト設定ファイル(Project Object Model)です。プロジェクトの依存関係、ビルド設定、プラグインなどが記述されています。ウィザードで選択した依存関係がここに追加されているのが確認できます。mvnw
,mvnw.cmd
,.mvn
: Maven Wrapper関連のファイルです。これにより、Mavenがローカルにインストールされていなくても、プロジェクト固有のバージョンでビルドを実行できます。
これらのファイルやディレクトリの役割を理解しておくことは、Spring Boot開発を進める上で非常に重要です。
第4章:STSを使ったコード編集と基本的な機能
プロジェクトが作成されたら、次はコードを書いていきます。STSは強力なコードエディタ機能を提供しており、効率的なコーディングを支援します。
4.1 コードエディタの基本
Package ExplorerビューでJavaファイル(例: MyfirstwebappApplication.java
)をダブルクリックすると、エディタ領域でそのファイルが開かれます。
- シンタックスハイライト: Javaのキーワード、型名、変数名などが色分けされて表示され、コードが読みやすくなります。
- コード補完 (Content Assist): コードを入力している途中で
Ctrl + Space
を押すと、現在の文脈で入力可能なクラス名、メソッド名、変数名などを候補として表示してくれます。Spring特有のアノテーションや設定値の補完も強力です。 - エラーと警告の表示: コードに構文エラーや潜在的な問題があると、該当する行の左側(マーカーバー)に赤いバツ印や黄色の警告マークが表示されます。これらのマーカーにマウスカーソルを合わせると、問題の詳細と修正候補(Quick Fixes)が表示されることがあります。
- クイックフィックス (Quick Fixes): エラーや警告がある行で
Ctrl + 1
を押すと、STSが提案する修正方法のリストが表示されます。例えば、インポートされていないクラス名に対するインポート文の追加、未使用の変数に対する削除提案などがあります。 - コードフォーマット: コードのインデントやスペースなどを、コーディング規約に基づいて自動的に整形できます。エディタ上で右クリックし、
Source
->Format
を選択するか、ショートカットキーCtrl + Shift + F
を使います。
4.2 ナビゲーションと検索
大規模なプロジェクトでは、目的のファイルやコード箇所を見つけるのが大変になります。STSは効率的なナビゲーション機能を提供します。
- 型を開く (Open Type):
Ctrl + Shift + T
ワークスペース内(および依存関係としてプロジェクトに追加されているライブラリ内)の任意のクラス、インターフェース、列挙型などを名前で検索して開くことができます。クラス名の一部を入力するだけでも候補が表示されます。 - リソースを開く (Open Resource):
Ctrl + Shift + R
ワークスペース内の任意のファイル(Javaファイルだけでなく、XML、プロパティファイル、テキストファイルなど)を名前で検索して開くことができます。 - 定義を開く (Open Declaration):
F3
またはCtrl
を押しながら要素をクリック
エディタ上でクラス名、メソッド名、変数名などの要素にカーソルを合わせ、F3
を押すかCtrl
を押しながらクリックすると、その要素が定義されているソースコードの場所にジャンプできます。 - 呼び出し階層を開く (Open Call Hierarchy):
Ctrl + Alt + H
メソッドにカーソルを合わせ、このショートカットを使うと、そのメソッドがどこから呼び出されているか、あるいはそのメソッドが何を呼び出しているかの階層構造を表示できます。 - クイックアウトライン (Quick Outline):
Ctrl + O
現在のファイル(クラス)のメソッドやフィールドの一覧をポップアップ表示し、素早く目的の要素にジャンプできます。 - ワークスペース検索 (Search):
Ctrl + H
ファイルの内容、型名、メソッド名など、様々な条件でワークスペース全体を検索できます。
これらのショートカットを覚えておくと、コード間の移動や探索が格段に速くなります。
4.3 リファクタリング
リファクタリングとは、プログラムの外部の振る舞いを変えずに、内部構造を改善することです。STSは強力なリファクタリング機能を提供します。
- 名前変更 (Rename):
Alt + Shift + R
変数名、メソッド名、クラス名などを変更する際に使います。この機能を使うと、その要素が使われているすべての箇所(同じファイル内だけでなく、ワークスペース全体)の名前を自動的に変更してくれます。手動で一つずつ修正する手間とミスを防ぐことができます。 - メソッドの抽出 (Extract Method):
Alt + Shift + M
選択した一連のコード行を新しいメソッドとして抽出し、元の場所からその新しいメソッドの呼び出しに置き換えます。コードの重複を減らし、可読性を向上させるのに役立ちます。 - ローカル変数の抽出 (Extract Local Variable):
Alt + Shift + L
計算結果などの式を選択し、新しいローカル変数として抽出します。複雑な式を分かりやすくするのに役立ちます。 - インライン化 (Inline):
Alt + Shift + I
抽出とは逆に、メソッドや変数の中身を呼び出し元に展開します。
リファクタリング機能は、コードの品質を維持・向上させるために非常に重要です。STSはこれらの操作を安全かつ効率的に行うための強力なツールを提供します。
第5章:最初のSpring Bootコードを書く
プロジェクトの構造を確認し、エディタの使い方を学んだら、実際にコードを書いてWebアプリケーションとして機能するようにしてみましょう。簡単なRESTful APIを作成します。
5.1 RESTコントローラの作成
Webリクエストを受け付けて応答を返すクラスを「コントローラ」と呼びます。Spring MVCでは、@Controller
または @RestController
アノテーションを付けたクラスがコントローラとして扱われます。今回は、API開発によく使われる@RestController
を使います。
-
新しいクラスを作成:
Package Explorerビューで、プロジェクトのsrc/main/java
ディレクトリの下にあるベースパッケージ(例:com.example.myfirstwebapp
)を右クリックし、New
->Class
を選択します。 -
クラス情報の入力:
「New Java Class」ウィザードが表示されます。- Source folder:
myfirstwebapp/src/main/java
となっていることを確認します。 - Package: ベースパッケージ(例:
com.example.myfirstwebapp
)が入力されていることを確認します。その下に、コントローラ用のサブパッケージを作成するのが一般的です。例えばcom.example.myfirstwebapp.controller
と入力します。 - Name: クラス名を入力します。役割が分かりやすい名前にしましょう。例:
HelloController
- 他の設定はデフォルトのままで構いません。
「Finish」ボタンをクリックします。新しい
HelloController.java
ファイルがエディタで開かれます。 - Source folder:
5.2 コードの実装
生成された HelloController.java
に、以下のコードを入力(またはコピー&ペースト)します。
“`java
package com.example.myfirstwebapp.controller; // パッケージ名は適宜修正
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // このクラスがRESTコントローラであることを示す
public class HelloController {
@GetMapping("/hello") // HTTP GETリクエストでパスが "/hello" の場合にこのメソッドが実行される
public String sayHello() {
// リクエストに対して返される文字列
return "Hello, Spring Boot with STS!";
}
}
“`
コードの解説:
package com.example.myfirstwebapp.controller;
: このクラスが属するパッケージを指定します。import ...;
: クラスで使用する他のクラスをインポートします。@GetMapping
と@RestController
はSpring Frameworkのクラスなのでインポートが必要です。STSのエディタは、これらのアノテーションを入力すると自動的にインポート文を追加するのを手伝ってくれます(クイックフィックスやコード補完を使います)。@RestController
: このアノテーションをクラスに付けることで、SpringはこのクラスをWebリクエストを処理するコントローラとして認識します。また、このクラス内のメソッドが返す値は、そのままHTTPレスポンスボディとして扱われます(例えば、文字列を返せばそれがレスポンスボディになります。JSONオブジェクトを返せば自動的にJSON形式に変換されます)。public class HelloController { ... }
: コントローラクラス本体の定義です。@GetMapping("/hello")
: このアノテーションをメソッドに付けることで、Springはこのメソッドを/hello
というパスへのHTTP GETリクエストのハンドラとして認識します。public String sayHello() { ... }
: リクエストを処理するメソッドの定義です。ここでは、単純に"Hello, Spring Boot with STS!"
という文字列を返しています。
コードを入力したら、ファイルを保存します (Ctrl + S
またはメニューの File
-> Save
)。STSは自動的にプロジェクトをビルドし、構文エラーなどをチェックしてくれます。Problemsビューにエラーが表示されていなければOKです。
第6章:Spring Bootアプリケーションの実行
コードを書いたら、次はアプリケーションを実行して、書いたコントローラが正しく動作するか確認します。STSにはSpring Bootアプリケーションを簡単に実行するための機能があります。
6.1 実行方法
Spring Bootアプリケーションの実行方法はいくつかあります。
-
メインアプリケーションクラスから実行:
Package Explorerビューで、src/main/java
の下にあるメインアプリケーションクラス(@SpringBootApplication
アノテーションが付いているクラス、例:MyfirstwebappApplication.java
)を右クリックします。
コンテキストメニューからRun As
->Spring Boot App
を選択します。 -
コントローラクラスなどから実行:
実行したいクラス(例えば、先ほど作成したHelloController.java
)をエディタで開いている状態で、ツールバーの「Run」ボタン(緑色の再生ボタン)の右側にある小さな下向き矢印をクリックし、表示されるリストからSpring Boot App
を選択します。または、エディタ上で右クリックし、Run As
->Spring Boot App
を選択します。 -
Spring Boot Dashboardから実行:
STSには「Spring Boot Dashboard」という便利なビューがあります。これは実行可能なSpring Bootプロジェクトを一覧表示し、簡単に起動・停止できる機能です。- もしSpring Boot Dashboardが表示されていない場合は、メニューバーから
Window
->Show View
->Other...
を選択し、フィルターフィールドに「Spring Boot Dashboard」と入力して選択し、「Open」をクリックします。 - Spring Boot Dashboardビューが表示されたら、作成したプロジェクト名(例:
myfirstwebapp
)が表示されているはずです。そのプロジェクト名を右クリックし、Run
またはDebug
を選択します。
- もしSpring Boot Dashboardが表示されていない場合は、メニューバーから
いずれの方法でも、STSはアプリケーションをビルドし、組み込みのWebサーバー(デフォルトではTomcat)を起動してアプリケーションを実行します。
6.2 実行結果の確認
アプリケーションが起動すると、Consoleビューに起動ログが表示されます。
``
| \ \ \ \
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _
\/ )| |)| | | | | || (_| | ) ) ) )
‘ || .__|| ||| |_, | / / / /
=========|_|==============|/ () ()=======
:: Spring Boot :: (v3.x.y) // バージョンは異なります
… 略 …
Tomcat initialized with port(s): 8080 (http) // 組み込みTomcatが8080ポートで起動
… 略 …
Started MyfirstwebappApplication in X.XXX seconds (process running for Y.YYY) // アプリケーション起動完了
“`
ログの中に Started ... Application
というメッセージが表示されれば、アプリケーションは正常に起動しています。組み込みTomcatがデフォルトで8080ポートで起動することがログから読み取れます。
ブラウザを開き、以下のURLにアクセスしてみましょう。
http://localhost:8080/hello
ブラウザに以下の文字列が表示されれば成功です!
Hello, Spring Boot with STS!
これで、STSを使ってSpring Bootアプリケーションを作成し、コードを書き、実行してWebリクエストに応答させるところまで完了しました。
6.3 アプリケーションの停止
アプリケーションを停止するには、Consoleビューの赤い四角形のボタン(Terminate)をクリックするか、Spring Boot Dashboardビューでプロジェクト名を右クリックし、Terminate
を選択します。
第7章:STSを使ったデバッグ
開発中に問題が発生したり、プログラムの挙動を詳しく調べたりしたい場合があります。STSは強力なデバッグ機能を提供します。
7.1 デバッグの開始
アプリケーションを実行する際と同様に、デバッグも様々な方法で開始できます。
-
メインアプリケーションクラスからデバッグ:
Package Explorerビューで、メインアプリケーションクラスを右クリックし、Debug As
->Spring Boot App
を選択します。 -
実行構成からデバッグ:
ツールバーの「Debug」ボタン(青い虫のアイコン)の右側にある小さな下向き矢印をクリックし、表示されるリストから実行したい構成(通常はプロジェクト名が表示されます)を選択します。
または、Run
->Debug Configurations...
からデバッグ構成を管理・実行できます。 -
Spring Boot Dashboardからデバッグ:
Spring Boot Dashboardビューでプロジェクト名を右クリックし、Debug
を選択します。
デバッグモードで起動すると、STSは自動的に「Debugパースペクティブ」に切り替えるか尋ねてくることがあります。デバッグ作業に最適なビューレイアウトになっているため、「Switch」をクリックして切り替えることを推奨します。
7.2 ブレークポイントの設定
デバッグ中にプログラムの実行を一時停止させたい場所を「ブレークポイント」と呼びます。ブレークポイントを設定するには、コードエディタで止めたい行の左側(マーカーバー)をダブルクリックします。その行に青い丸が表示されればブレークポイントが設定されています。
例:HelloController.java
の return "Hello, Spring Boot with STS!";
の行にブレークポイントを設定してみましょう。
7.3 デバッグパースペクティブ
Debugパースペクティブには、デバッグ作業に役立つビューが配置されています。
- Debugビュー: 現在実行中のスレッド、呼び出しスタック(メソッドがどのように呼び出されたかの履歴)が表示されます。実行中のプログラムを停止・再開したり、終了させたりするボタンがあります。
- Variablesビュー: 現在のスコープ(メソッド内など)で利用可能な変数とその値が表示されます。プログラムが一時停止した時点での変数の値を確認できます。
- Breakpointsビュー: 設定されているブレークポイントの一覧が表示されます。ブレークポイントの有効/無効を切り替えたり、削除したりできます。
- Consoleビュー: 通常の実行時と同様に、アプリケーションのログ出力などが表示されます。
7.4 ステップ実行
プログラムがブレークポイントで一時停止したら、ツールバーやDebugビューのボタンを使ってプログラムを少しずつ実行させることができます。
- Resume (F8): 次のブレークポイントまで実行を続行します。ブレークポイントがなければプログラム終了まで実行されます。
- Step Into (F5): 現在の行にあるメソッド呼び出しの内部に入ります。
- Step Over (F6): 現在の行を実行し、次の行に進みます。メソッド呼び出しがあってもその内部には入りません。
- Step Return (F7): 現在のメソッドの実行を最後まで行い、そのメソッドを呼び出した箇所に戻ります。
これらのステップ実行機能とVariablesビューを組み合わせることで、プログラムが意図した通りに実行されているか、変数の値が期待通りに変化しているかなどを詳細に調べることができます。
デバッグが終了したら、Debugビューの赤い四角形のボタン(Terminate)をクリックしてアプリケーションを停止します。
第8章:依存関係の管理 (Maven/Gradle)
Spring Bootプロジェクトは、MavenまたはGradleというビルドツールを使って依存関係の管理やビルドを行います。STSはこれらのビルドツールと密接に連携しています。
8.1 Maven (pom.xml)
Mavenを使用する場合、プロジェクトのルートにある pom.xml
ファイルがプロジェクトの設定の中心です。依存関係を追加するには、このファイルを編集します。
エディタで pom.xml
を開くと、XML形式のファイルが表示されます。dependencies
タグの中に、プロジェクトが必要とする各ライブラリ(依存関係)の <dependency>
タグが記述されています。
xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
新しい依存関係を追加したい場合は、<dependencies>
タグの中に新しい <dependency>
タグを記述します。groupId
、artifactId
、version
を指定するのが基本です。これらの情報はMaven Central Repositoryなどのサイトで調べることができます。
STSのエディタは pom.xml
の編集時にもコード補完が効くため、<dependency>
タグの入力を助けてくれます。ファイルを保存すると、STSは自動的にMavenを実行して必要なライブラリをダウンロードし、プロジェクトのクラスパスに追加します。
Mavenプロジェクトを右クリックし、Maven
メニューから Update Project...
を選択すると、依存関係の解決やプロジェクト設定の更新を手動で行うことができます。
8.2 Gradle (build.gradle)
Gradleを使用する場合、プロジェクトのルートにある build.gradle
ファイル(通常はGroovy構文)がプロジェクトの設定ファイルです。
“`gradle
plugins {
id ‘java’
id ‘org.springframework.boot’ version ‘3.x.y’ // バージョンは適宜修正
id ‘io.spring.dependency-management’ version ‘1.x.y’ // バージョンは適宜修正
}
group = ‘com.example’ // グループID
version = ‘0.0.1-SNAPSHOT’ // バージョン
java {
sourceCompatibility = ’17’ // Javaバージョン
}
repositories {
mavenCentral()
}
dependencies {
implementation ‘org.springframework.boot:spring-boot-starter-web’
developmentOnly ‘org.springframework.boot:spring-boot-devtools’
testImplementation ‘org.springframework.boot:spring-boot-starter-test’
}
“`
依存関係は dependencies
ブロックの中に、Mavenとは異なる記述形式で記述します。例えば implementation 'org.springframework.boot:spring-boot-starter-web'
のように記述します。GradleファイルもSTSのエディタで編集・保存すると、自動的にGradleが実行され依存関係が解決されます。
Gradleプロジェクトを右クリックし、Gradle
メニューから Refresh Gradle Project
を選択すると、依存関係の解決やプロジェクト設定の更新を手動で行うことができます。
MavenにしてもGradleにしても、STSはビルドツールの実行をIDE内でスムーズに行えるようサポートしています。これにより、コマンドラインから手動で実行する手間が省けます。
第9章:STSの便利な機能をもっと知る
STSには、これまで紹介した基本機能以外にも、Spring開発を効率化するための様々な便利な機能が用意されています。いくつか代表的なものを紹介します。
9.1 Spring Boot Dashboard
第6章でも少し触れましたが、Spring Boot DashboardはSpring Boot開発において非常に便利なビューです。
- ワークスペース内の実行可能なSpring Bootプロジェクトを一覧表示します。
- プロジェクト名を選択し、実行ボタン(緑色の再生マーク)、デバッグボタン(青い虫マーク)、停止ボタン(赤い四角形マーク)をクリックするだけで、簡単にアプリケーションを起動・デバッグ・停止できます。
- 複数のSpring Bootアプリケーションを同時に実行・管理できます。
- 起動中のアプリケーションのポート番号などが表示され、ステータスが一目で確認できます。
- ログファイルを開いたり、アプリケーションの設定ファイルに素早くアクセスしたりする機能もあります。
普段のSpring Boot開発では、このビューを常に開いておくことを推奨します。
9.2 Spring Explorer / Spring Elements
STSは、Springアプリケーション内のコンポーネント(Bean)やそれらの依存関係を視覚的に表示する機能を持っています(バージョンやプロジェクト設定によって表示される内容は異なります)。
- Spring Explorer: Springの設定ファイル(XMLやJavaConfig)や、
@Component
,@Service
,@Repository
,@Controller
などのアノテーションが付けられたクラスを一覧表示します。 - Spring Elements: アプリケーションのコンポーネント間の依存関係をグラフなどで視覚的に表示し、アプリケーションの構造を理解するのに役立ちます。
これらのビューを使うことで、アプリケーション全体の構成を俯瞰しやすくなります。
9.3 アプリケーションプロパティファイル (application.properties / application.yml) の編集支援
Spring Bootでは application.properties
または application.yml
ファイルで様々な設定を行います。STSのエディタはこれらのファイルの編集時にも強力な支援を提供します。
- コード補完: Spring Bootの豊富な設定項目名 (
server.port
,spring.datasource.url
など) に対してコード補完が効きます。 - 検証: 設定値の型が正しいかなどを検証し、間違いがあれば警告やエラーを表示してくれます。
- ドキュメント表示: 設定項目にカーソルを合わせると、その項目の説明が表示されることがあります。
これにより、Spring Bootの設定をより正確かつ効率的に行うことができます。
9.4 Git連携
多くの開発プロジェクトではバージョン管理システムとしてGitが使われています。STSにはEGitというプラグインが標準で搭載されており、Git操作をIDE内から行うことができます。
- リポジトリのクローン、コミット、プッシュ、プルといった基本的な操作
- ブランチの作成・切り替え
- 変更のステージングとコミット
- コンフリクトの解消
GUIでGit操作を行えるため、コマンドラインに不慣れな場合でもバージョン管理を行いやすいです。
第10章:よくある問題と解決策
初心者の方がSTSやSpring Bootを使っている際によく遭遇する問題と、その解決策を紹介します。
10.1 JDKが見つからない、またはバージョンが違う
問題: STSが起動しない、あるいはプロジェクトのビルドや実行時にJava関連のエラーが発生する。
原因: JDKが正しくインストールされていない、JAVA_HOME
環境変数が設定されていない、またはSTSが想定しているJDKバージョンと違うJDKを参照している。
解決策:
* コマンドプロンプト/ターミナルで java -version
と javac -version
を実行し、JDKが正しくインストールされ、パスが通っているか確認します。
* JAVA_HOME
環境変数がJDKのルートディレクトリを指しているか確認します。
* STSの設定を確認します。メニューバーから Window
-> Preferences
-> Java
-> Installed JREs
を選択し、使用したいJDKが登録され、チェックが入っているか確認します。もし登録されていなければ、「Add…」ボタンからJDKを追加します。
10.2 ポートが既に使われている (Port already in use)
問題: Spring Bootアプリケーションの起動時に「Port 8080 was already in use.」のようなエラーが表示されて起動できない。
原因: 別のアプリケーション(以前起動したSpring Bootアプリ、他のWebサーバーなど)が既にデフォルトポートである8080番ポートを使用している。
解決策:
* 現在実行中の不要なアプリケーションを終了させます。タスクマネージャー(Windows)や ps aux | grep java
(macOS/Linux) などでJavaプロセスを確認し、不要なものを終了させます。
* Spring Bootアプリケーションが使用するポート番号を変更します。src/main/resources/application.properties
に以下の行を追加します。
```properties
server.port=8081
```
次にアプリケーションを起動すると、8081番ポートが使用されます。
10.3 依存関係が解決できない (Dependency resolution failed)
問題: プロジェクト作成後や pom.xml
/build.gradle
編集後に、依存関係関連のエラーが表示される。
原因: インターネット接続がない、Maven Centralなどのリポジトリにアクセスできない、依存関係の座標(groupId, artifactId, version)が間違っている、ローカルリポジトリが壊れている。
解決策:
* インターネットに接続されているか確認します。
* pom.xml
または build.gradle
に記述した依存関係の座標が正しいか確認します。特にバージョン番号に注意してください。
* Mavenの場合: Package Explorerでプロジェクトを右クリックし、Maven
-> Update Project...
を選択します。「Force Update of Snapshots/Releases」にチェックを入れてOKをクリックし、ローカルリポジトリを強制的に更新してみます。
* Gradleの場合: Package Explorerでプロジェクトを右クリックし、Gradle
-> Refresh Gradle Project
を選択します。
* 企業内プロキシ環境などでは、Maven/Gradleの設定ファイル(~/.m2/settings.xml
や ~/.gradle/gradle.properties
)にプロキシ設定が必要な場合があります。
10.4 構文エラーやコンパイルエラーが消えない
問題: コードにエラーが表示されているが、修正してもエラーマーカーが消えない、あるいは正しいはずなのにエラーが表示される。
原因: STSの内部状態がおかしくなっている、プロジェクトの自動ビルド設定がオフになっている。
解決策:
* まずコードが本当に正しいか再確認します。クイックフィックス (Ctrl + 1
) の提案も試してみます。
* プロジェクトをクリーンして再ビルドします。メニューバーから Project
-> Clean...
を選択し、対象プロジェクトを選択してOKをクリックします。その後、Project
-> Build All
を選択します。
* Project
-> Build Automatically
にチェックが入っているか確認します。チェックが入っていれば、ファイルの保存時に自動的にビルドされます。
* STSを再起動してみます。
* ワークスペースを切り替えて、新しいワークスペースで同じプロジェクトをインポート(既存のプロジェクトをインポートする場合は File
-> Import
-> Maven
-> Existing Maven Projects
など)してみます。
10.5 STSの動作が重い
問題: STSの起動や操作、ビルドなどが非常に遅い。
原因: マシンのリソース不足、STSに割り当てられているメモリが少ない、多数のプロジェクトを開いている。
解決策:
* 他の不要なアプリケーションを終了させ、マシンのメモリやCPU負荷を減らします。
* STSに割り当てるメモリ(ヒープサイズ)を増やします。STSのインストールディレクトリにある SpringToolSuite4.ini
ファイルをテキストエディタで開き、-Xms
(初期ヒープサイズ) と -Xmx
(最大ヒープサイズ) の値を増やします(例: -Xms512m
, -Xmx4096m
など。マシンのメモリ容量に応じて調整してください)。ファイルを編集したらSTSを再起動が必要です。
* ワークスペース内に開いているプロジェクトを減らします。Package Explorerで不要なプロジェクトを右クリックし、Close Project
を選択します。
これらの一般的な問題と解決策を知っておくと、開発中にスムーズに進められるでしょう。
第11章:STSを使いこなす次のステップ
このガイドでSTSの基本的な使い方、Spring Bootプロジェクトの作成・実行・デバッグを学びました。しかし、STSの機能はこれだけにとどまりませんし、Spring/Spring Bootの世界も奥が深いです。
STSをさらに使いこなし、より高度なSpring開発に進むために、以下のステップを検討してみてください。
- STSの他のビューや機能の探求:
Window
->Show View
->Other...
から利用可能な様々なビューを試してみてください。例えば、Outline
ビュー、Problems
ビュー、Search
ビュー、Git Repositories
ビュー、Heap Status
ビューなど、開発効率を高めるビューが多数あります。
また、メニューバーのSource
,Refactor
,Run
,Debug
メニューには、今回紹介しきれなかった便利な機能がたくさんあります。公式ドキュメントなども参考に、様々な機能を試してみてください。 - Spring Frameworkの主要コンセプトの学習:
STSはあくまでツールです。開発対象であるSpring Framework自体の知識を深めることが、より高度な開発には不可欠です。- Dependency Injection (DI): Springの最も基本的な機能です。
- Inversion of Control (IoC) Container: DIを実現するためのコンテナについて理解します。
- Spring MVC: Webアプリケーション開発のための機能セット。コントローラだけでなく、ビューの扱いなども学びます。
- Spring Data: データベース連携を容易にする機能。JPA, JDBCなどを学びます。
- Spring Security: セキュリティ機能を提供します。認証や認可などを学びます。
- より実践的なSpring Boot機能の学習:
- 設定の外部化:
application.properties
/application.yml
を使った詳細な設定方法。プロファイルの利用。 - データベース連携: H2 Database, MySQL, PostgreSQLなどを使ったデータ永続化。Spring Data JPAやSpring Data JDBCの利用。
- テスト: Spring Bootアプリケーションの単体テストや統合テストの書き方(STSはJUnitやMockitoなどのテストフレームワークとの連携も強力です)。
- Actuator: アプリケーションの監視や管理のための機能。
- 組み込みサーバーのカスタマイズ: Tomcat以外のWebサーバーの利用、SSL設定など。
- 設定の外部化:
- バージョン管理システム(Git)の本格的な利用:
一人での開発でも、チームでの開発でも、Gitを使ったバージョン管理は必須スキルです。STSのEGitプラグインを使って、コミット、プッシュ、プル、ブランチ操作などを習得しましょう。GitHubやGitLabなどのリモートリポジトリと連携させて開発を進める練習をしましょう。 - 他のSTSバージョンやEclipseプラグイン:
STSはSpring開発に特化していますが、Eclipseエコシステムには他にも様々な便利なプラグインが存在します(例: Lombok、Checkstyle、PMDなど)。必要に応じて、これらのプラグインをインストールしてSTSの機能を拡張することも可能です。
学習は常に継続するものです。このガイドで得た知識を土台に、少しずつ新しい技術やSTSの機能を学び、実践に活かしていくことで、Java/Spring開発者としてのスキルを向上させることができます。
結論:STSとともにSpring開発を楽しもう!
この長いガイドを最後までお読みいただき、ありがとうございました。
Spring Tool Suite (STS) は、Spring Framework、特にSpring Bootを使ったJavaアプリケーション開発において、非常に強力で効果的なツールです。Spring固有の様々な機能への対応、Spring Bootとの密な連携、そしてEclipseベースならではの豊富なJava開発機能により、開発効率を大幅に向上させてくれます。
本ガイドでは、STSのインストールから始め、Spring Bootプロジェクトの作成、コードの記述、実行、そしてデバッグといった、開発の基本的なサイクルをSTS上で行う手順を詳細に解説しました。また、Maven/Gradleによる依存関係管理や、STSの便利な機能、さらには初心者が遭遇しやすい問題とその解決策についても触れました。
最初は何から手をつければ良いか分からず戸惑うこともあるかもしれませんが、今回学んだ基本的な操作を繰り返し実践することで、徐々にSTSの操作に慣れ、その便利さを実感できるはずです。
IDEはあくまで開発を支援するツールです。最も重要なのは、そのツールを使って何を作るか、そしてどのようにコードを書くかです。しかし、適切なツールを使いこなすことで、開発体験は大きく向上し、より創造的な作業に集中できるようになります。
ぜひこのガイドを参考に、STSを皆さんのSpring開発の強力な味方として活用し、アプリケーション開発を楽しんでください。STSとともに、素晴らしいJava/Springの世界を探索しましょう!応援しています!