Spring Boot 基本

IntelliJ IDEA上でGradleを使ってWeb画面のSpring Bootプロジェクトを作成してみた

Spring Bootのプロジェクトを新規作成を「IntelliJ IDEA」のメニューから実施しようとしたところ、無料の「Community」版では実施できなかった。

以下のように、「IntelliJ IDEA」の「ファイル」メニューから「新規」を選択し、「プロジェクト」を選択すると、「新規プロジェクト」画面が表示されるが、ここにはSpring Bootのプロジェクトを作成できるメニューが見つけられなかった。
SpringBoot作成メニュー無し_1

SpringBoot作成メニュー無し_2

ただ、Spring InitializrというWEBサービスがあり、これを利用すればSpring Bootのプロジェクトを新規作成できることがわかったので、今回は、Spring Initializrを利用したWeb画面のSpring Bootプロジェクトの作成手順について共有する。

なお、今回はビルドツールとして「Gradle」を利用している。「Gradle」とは、Mavenと同じように、いろいろなライブラリをまとめたjarファイルを生成できるビルドツールのことをいう。

前提条件

下記記事のIntelliJ IDEA Community版をダウンロード済であること。

IntelliJ IDEAをインストールしてみた「IntelliJ IDEA(インテリジェイ アイディア)」という、Eclipseと同等の機能をもつJava用統合開発環境を使って、Sp...



やってみたこと

  1. Spring Bootプロジェクトの作成
  2. IntelliJ IDEA上でSpring Bootプロジェクトの読み込み
  3. 起動ポートの変更
  4. Controllerクラスの作成
  5. HTMLの作成
  6. Spring Bootプロジェクトの実行

 

Spring Bootプロジェクトの作成

Spring Bootプロジェクトの雛型は、Spring Initializrを利用することで作成することができる。その手順は以下の通り。

1) Spring Initializrの下記URLにアクセス
https://start.spring.io/

2) 下図のように、Projectに「Gradle Project」、Languageに「Java」、Spring Bootに作成したいバージョンを選択し、Project MetadataのGroupにパッケージ名・Artifactにクラス名を入力し、Dependenciesに「Spring Web Starter」「Thymeleaf」を指定した状態で、「Generate the Project – Ctrl +」ボタンを押下
SpringBootプロジェクト作成2-1

なお、「Dependencies」で「Spring Web Starter」を追加するには、例えば以下のように、「Search dependencies to add」に「web」と入力し、「Spring Web Starter」の「+」ボタンを押下すればよい
SpringBootプロジェクト作成2-2

「Spring Web Starter」の「+」ボタン押下後は、下記のように、「Spring Web Starter」が追加されている
SpringBootプロジェクト作成2-3

3) 2)で「Generate the Project – Ctrl +」ボタンを押下すると、以下のように、(Artifactに入力したクラス名).zipファイルがダウンロードされる
SpringBootプロジェクト3-1

また、(Artifactに入力したクラス名).zipファイルを解凍した結果は以下の通り
SpringBootプロジェクト3-2



IntelliJ IDEA上でSpring Bootプロジェクトの読み込み

次に、先ほど作成したSpring Bootプロジェクトを、IntelliJ IDEA上で読み込む。その手順は以下の通り。

1) IntelliJ IDEAのWelcome画面を開き、「開く」ボタンを押下
SpringBootプロジェクトを開く1

2) 解凍した(Artifactに入力したクラス名)のフォルダを選択し、「OK」ボタンを押下
SpringBootプロジェクトを開く2

3) 読み込んだプロジェクトを開くと、以下のようになる
SpringBootプロジェクトを開く3

上記プロジェクト内の「DemoApplication.java」には、「@SpringBootApplication」というアノテーションが付与されているため、これを実行することにより、Spring Bootとしてプロジェクトを起動することができる。「DemoApplication.java」のソースコード内容は以下の通り。

 
また、上記プロジェクト内の「build.gradle」は以下の通りで、Gradleによりjarファイルを作成するための定義ファイルとなっている。これは、Mavenのpom.xmlに相当している。「build.gradle」のソースコード内容は以下の通り。

上記ソースコードの「dependencies」に、「spring-boot-starter-web」と「spring-boot-starter-thymeleaf」が含まれているため、thymeleafというテンプレートエンジンを利用した画面表示が行えるようになっている。



起動ポートの変更

Spring Bootが起動するときに利用するポート番号は、デフォルトで「8080」になっている。これを変更するには、以下のように、application.propertiesに「server.port=ポート番号」を追記すればよい。
ポートの変更

Controllerクラスの作成

画面表示ができるようにするには、Spring Bootの機能の1つであるコントローラクラスを作成する必要がある。コントローラクラスは「DemoApplication.java」と同じディレクトリ上に作成する。その作成例は以下の通り。
コントローラクラス

DemoController.javaのソースコード内容は以下の通り。

上記ソースコードのように「@Controller アノテーション」と「@RequestMapping アノテーション」を用いることで、Spring Bootが起動した状態で http://(サーバー名):(ポート番号)/ とアクセスしたときに、コントローラクラスのindexメソッドが呼ばれる。

また、thymeleafのはたらきにより、indexメソッド内で文字列”index”を返却することにより、resources/templatesフォルダ内の「index.html」が表示できるようになる。なお、「index.html」は後の「HTMLの作成」にて作成する。

削除または保存していないWordドキュメントの復元方法【4DDiG Windowsデータ復元】ワード(Word)データ等のファイルを誤って削除してしまった場合は、通常はデータの復元ができませんが、4DDiGというソフトウェアを利用...

HTMLの作成

コントローラ実行後に遷移する画面「index.html」を、resources/templates フォルダ内に作成する。その作成例は以下の通り。
HTMLファイル

index.htmlのソースコード内容は以下の通りで、thymeleafを利用しない、通常のHTML5を利用したソースコードとなっている。

Spring Bootプロジェクトの実行

これまで作成してきたSpring Bootプロジェクトの実行は、以下の手順で行う。

1) 「@SpringBootApplication」というアノテーションが付与されている「DemoApplication.java」を選択し右クリックし、実行メニューを押下し、Spring Bootとしてプロジェクトを起動する
SpringBoot実行1

2) 起動すると、コンソールに「Started DemoApplication in …」が表示される
SpringBoot実行2

3) Webブラウザ上で「http://(サーバー名):(ポート番号)/」とアクセスすると、DemoControllerクラスのindexメソッドが実行され、resources/template フォルダ内のindex.htmlが表示される
SpringBoot実行3

なお、今回はローカル環境でSpring Bootを起動しているため、サーバー名は「localhost」となる。また、application.propertiesに「server.port=8084」と指定しているため、ポート番号は「8084」となる。

4) Spring Bootアプリケーションを終了するには、左下の「■」を押下する
SpringBoot実行4

要点まとめ

  • Spring Bootプロジェクトの新規作成は、「Spring Initializr」というWEBサービスによって行える。
  • 起動ポートの変更は、「application.properties」に「server.port=ポート番号」を記載することで行える。
  • 画面遷移を行えるようにするには、「@Controller」が付与されたコントローラクラス(Java)と、遷移先画面(HTML)の追加が必要。
  • Spring Bootプロジェクトの実行は、「@SpringBootApplication」が付与されたクラス(Java)を、Javaアプリケーションとして実行すればよい。