main()メソッドでSpring Bootを起動してみよう
新人
「Javaのmain()メソッドって、Spring Bootでも使うんですか?」
先輩
「もちろん。Spring Bootアプリもmain()メソッドからスタートするよ。Javaアプリと同じ考え方だね。」
新人
「それじゃあ、実際にSpring Bootでmain()を使ってアプリを起動してみたいです!」
先輩
「いいね!まずはPleiadesを使って、GradleでSpring Bootプロジェクトを作ってみようか。」
1. Spring Bootとは何か?
Spring Bootは、Javaのフレームワークである「Spring Framework」をもっと簡単に使えるようにしたものです。複雑な設定を自動でやってくれるので、初心者でもすぐにWebアプリを作り始められます。
従来のSpringでは、XMLファイルでの設定やたくさんのコードが必要でしたが、Spring Bootではmain()メソッドひとつでアプリを起動できます。初心者がJavaでWebアプリを作るときに最適な選択肢です。
特に、開発環境としてPleiadesを使えば、画面操作で簡単にSpring Bootプロジェクトを作成できます。今回はMavenではなく、Gradleを使用して進めます。
2. PleiadesでSpring Bootプロジェクトを作成する手順(Gradleプロジェクト)
それでは、Spring Bootアプリを作成するために、まずはPleiadesでGradleプロジェクトを作りましょう。以下の手順に従えば、初心者の方でも迷わずにプロジェクトを立ち上げられます。
- Pleiadesを起動します。
- メニューから「ファイル」→「新規」→「Gradleプロジェクト」を選択します。
- 「Gradleプロジェクトの作成」画面で、プロジェクト名を入力します(例:
springbootdemo)。 - 「Javaのバージョン」や「ビルドタイプ」はデフォルトのままでOKです。
- 「次へ」をクリックして、プロジェクトを作成します。
プロジェクトを作成した後は、Spring Bootに必要な依存関係(ライブラリ)を追加します。
- プロジェクトを右クリックし、「Spring」→「Springプロジェクトの設定」を選びます。
- 「Spring Boot」を選び、「Web」「Thymeleaf」など必要なライブラリにチェックを入れて「完了」をクリックします。
- Gradleが自動的に依存関係をダウンロードして設定します。
これで、Spring Bootの準備は完了です。mainメソッドを使ってアプリを起動する準備が整いました。
ここで、main()メソッドがどのように使われるのか、実際にプロジェクト内のコードを見てみましょう。
作成したプロジェクト内のsrc/main/javaディレクトリを開くと、自動的に次のようなmainクラスが作成されています。
package com.example.springbootdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootdemoApplication.class, args);
}
}
このコードは、Spring Bootを起動するためのmain()メソッドです。SpringApplication.run()というメソッドを呼び出すことで、Spring Bootの全機能が立ち上がります。
つまり、この1行がSpring Bootアプリケーションのエンジンのようなものです。
この後、実際にmain()メソッドを使ってアプリを起動し、画面にアクセスして動作を確認していきましょう。
3. Spring Bootのmainメソッドとは何か?どこにあるのか?
Javaアプリケーションは、mainメソッドから処理が始まるというルールがあります。Spring Bootでもそのルールは変わらず、最初に実行されるのはmainメソッドです。
前のセクションで紹介したように、PleiadesでSpring Bootプロジェクトを作成すると、src/main/javaフォルダの中にアプリケーション名と同じ名前のクラスファイルが自動生成されます。
たとえば、プロジェクト名がspringbootdemoであれば、SpringbootdemoApplication.javaというファイルが自動的に作られ、その中にmainメソッドが定義されています。
このmainメソッドの中で、SpringApplication.run()というメソッドを呼び出して、Spring Bootアプリケーションの起動が行われるのです。
つまり、Spring Bootのmainメソッドは、Javaのルールに従いつつ、Spring Bootの起動処理をまとめて実行する場所だと考えましょう。
4. mainメソッドのコードを見て、どのようにSpring Bootが起動しているか解説
では、実際にmainメソッドの中身をもう一度見てみましょう。
@SpringBootApplication
public class SpringbootdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootdemoApplication.class, args);
}
}
このコードの中で、最も重要なのが次の1行です。
SpringApplication.run(SpringbootdemoApplication.class, args);
この1行は、Spring Bootのすべての機能を起動するエントリーポイントです。@SpringBootApplicationというアノテーションが付いているクラスを指定することで、Spring Bootは自動的にWebサーバーを立ち上げたり、コントローラや設定を読み込んだりします。
初心者の方がよく疑問に思うのが「サーバーってどこで動いてるの?」という点です。Spring Bootでは、内部に組み込みのWebサーバー(通常はTomcat)が含まれており、mainメソッドからアプリを起動するだけで自動的にWebサーバーも起動します。
これが、従来のJava Webアプリケーションと大きく違う点で、初心者でも簡単にWebアプリが作れる理由のひとつです。
5. 実際にPleiadesでmainメソッドを実行してみる手順
では、作成したSpring Bootアプリケーションを実際にmainメソッドを使って起動してみましょう。
Pleiadesを使えば、難しいコマンド操作なしで簡単に実行できます。以下の手順に従ってください。
- Pleiadesで、
SpringbootdemoApplication.javaファイルを開きます。 - エディタ上で右クリックします。
- 表示されたメニューから「Javaアプリケーションとして実行」を選びます。
実行が開始されると、画面下部の「コンソール」タブにログが表示されます。Spring Bootが自動的に組み込みサーバーを立ち上げ、必要な初期処理を行います。
しばらく待つと、以下のようなログが表示されます。
... (中略)
Tomcat started on port(s): 8080 (http) with context path ''
Started SpringbootdemoApplication in 3.456 seconds (JVM running for 4.123)
このように、「Tomcat started」というメッセージが出れば、無事にアプリケーションが起動したことが確認できます。
次に、ブラウザを開いて、以下のURLにアクセスしてみましょう。
http://localhost:8080
現在はまだコントローラを作成していないため、何も表示されない、もしくはエラー画面になるかもしれませんが、mainメソッドからSpring Bootアプリケーションを起動するという基本動作は完了しています。
ここまでで、Spring Bootの起動方法、main()メソッドの役割、実際の実行手順をひととおり学ぶことができました。
次のステップでは、@Controllerを使って画面に簡単なメッセージを表示する方法を紹介していきます。
6. 起動後に表示されるコンソールログの見方
Spring Bootアプリケーションをmainメソッドから起動すると、Pleiadesの画面下にある「コンソール」ビューにログが大量に出力されます。このログにはアプリの起動状況やエラー情報などが表示されるので、初心者でもログの見方を覚えておくと非常に役立ちます。
まず注目してほしいのは、下記のようなメッセージです。
Tomcat started on port(s): 8080 (http) with context path ''
Started SpringbootdemoApplication in 3.456 seconds (JVM running for 4.123)
この「Tomcat started」という行は、組み込みWebサーバーであるTomcatが正常に起動したことを意味しています。また、「port(s): 8080」という記述から、ローカルホストの8080番ポートでサーバーが動作していることがわかります。
そして「Started SpringbootdemoApplication」というメッセージは、Spring Bootアプリケーション全体が無事に起動したという印です。これらのログを確認することで、mainメソッドからの起動が成功したかどうかを判断することができます。
もし起動に失敗した場合は、エラーメッセージが表示されるため、その部分をよく読んで対処方法を調べてみましょう。
7. @Controllerを使って簡単な画面表示まで動かしてみよう
Spring Bootのアプリケーションが起動できたら、次は@Controllerを使ってブラウザに簡単な画面を表示してみましょう。ここでは、HTMLファイルとコントローラクラスを使って、トップページを表示する仕組みを作成します。
まず、コントローラクラスを作成します。Pleiadesのsrc/main/javaに次のようなクラスを作ってください。
package com.example.springbootdemo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
@GetMapping("/")
public String index() {
return "index";
}
}
@Controllerを使うことで、このクラスはSpringの画面表示処理を担当するようになります。@GetMapping("/")は、ブラウザで「http://localhost:8080/」にアクセスされたときにindexという名前のHTMLファイルを返すという意味です。
次に、HTMLファイルを作成します。以下のように、src/main/resources/templatesフォルダを作成し、その中にindex.htmlという名前のファイルを置きます。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Spring Boot 初期ページ</title>
</head>
<body>
<h1>Spring Bootへようこそ!</h1>
<p>これは@Controllerから表示された最初のページです。</p>
</body>
</html>
このHTMLは、Spring Bootが提供するテンプレートエンジンThymeleafによって読み込まれます。初心者の方は「テンプレートエンジン」と聞くと難しそうに感じるかもしれませんが、実際には普通のHTMLファイルとして使って問題ありません。
アプリケーションを再度mainメソッドで起動し、ブラウザでhttp://localhost:8080にアクセスしてみてください。
正しく表示されれば、@Controllerを使った最初のSpring Bootアプリケーションが完成です。
8. Spring Bootをmainメソッドで起動する流れのまとめ
ここまでで、初心者の方でもSpring Bootアプリケーションをmainメソッドから起動し、簡単な画面を表示するところまでの流れを一通り学ぶことができました。
最初は、PleiadesでGradleプロジェクトを作成し、Spring Bootの必要な依存関係を設定するところからスタートしました。その後、mainメソッドの中でSpringApplication.run()を使ってアプリケーションを起動し、Pleiadesの右クリック操作で簡単にアプリを実行できることを確認しました。
また、起動後のコンソールログを確認することで、アプリが正しく動いているかを判断できるようになりました。さらに、@Controllerを使って、HTMLファイルを表示する仕組みも体験しました。
Spring Bootは、初心者でも扱いやすく、JavaのWeb開発を効率よく始めるための強力なフレームワークです。今回のようにmainメソッドから起動し、@Controllerを使って画面を表示するという基本をしっかりマスターすることで、今後の開発の土台ができます。
次回は、より実用的な画面の作成やデータの表示などにもチャレンジしていきましょう。