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


ただ、Spring InitializrというWEBサービスがあり、これを利用すればSpring Bootのプロジェクトを新規作成できることがわかったので、今回は、Spring Initializrを利用したWeb画面のSpring Bootプロジェクトの作成手順について共有する。
なお、今回はビルドツールとして「Gradle」を利用している。「Gradle」とは、Mavenと同じように、いろいろなライブラリをまとめたjarファイルを生成できるビルドツールのことをいう。
前提条件
下記記事のIntelliJ IDEA Community版をダウンロード済であること。
やってみたこと
- Spring Bootプロジェクトの作成
- IntelliJ IDEA上でSpring Bootプロジェクトの読み込み
- 起動ポートの変更
- Controllerクラスの作成
- HTMLの作成
- 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 +」ボタンを押下

なお、「Dependencies」で「Spring Web Starter」を追加するには、例えば以下のように、「Search dependencies to add」に「web」と入力し、「Spring Web Starter」の「+」ボタンを押下すればよい

「Spring Web Starter」の「+」ボタン押下後は、下記のように、「Spring Web Starter」が追加されている

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

また、(Artifactに入力したクラス名).zipファイルを解凍した結果は以下の通り

IntelliJ IDEA上でSpring Bootプロジェクトの読み込み
次に、先ほど作成したSpring Bootプロジェクトを、IntelliJ IDEA上で読み込む。その手順は以下の通り。
1) IntelliJ IDEAのWelcome画面を開き、「開く」ボタンを押下

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

上記プロジェクト内の「DemoApplication.java」には、「@SpringBootApplication」というアノテーションが付与されているため、これを実行することにより、Spring Bootとしてプロジェクトを起動することができる。「DemoApplication.java」のソースコード内容は以下の通り。
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
また、上記プロジェクト内の「build.gradle」は以下の通りで、Gradleによりjarファイルを作成するための定義ファイルとなっている。これは、Mavenのpom.xmlに相当している。「build.gradle」のソースコード内容は以下の通り。
plugins {
id 'org.springframework.boot' version '2.1.7.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
上記ソースコードの「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のソースコード内容は以下の通り。
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class DemoController {
@RequestMapping("/")
public String index(){
return "index";
}
}
上記ソースコードのように「@Controller アノテーション」と「@RequestMapping アノテーション」を用いることで、Spring Bootが起動した状態で http://(サーバー名):(ポート番号)/ とアクセスしたときに、コントローラクラスのindexメソッドが呼ばれる。
また、thymeleafのはたらきにより、indexメソッド内で文字列”index”を返却することにより、resources/templatesフォルダ内の「index.html」が表示できるようになる。なお、「index.html」は後の「HTMLの作成」にて作成する。
HTMLの作成
コントローラ実行後に遷移する画面「index.html」を、resources/templates フォルダ内に作成する。その作成例は以下の通り。

index.htmlのソースコード内容は以下の通りで、thymeleafを利用しない、通常のHTML5を利用したソースコードとなっている。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index page</title>
</head>
<body>
DemoController Called.
</body>
</html>
Spring Bootプロジェクトの実行
これまで作成してきたSpring Bootプロジェクトの実行は、以下の手順で行う。
1) 「@SpringBootApplication」というアノテーションが付与されている「DemoApplication.java」を選択し右クリックし、実行メニューを押下し、Spring Bootとしてプロジェクトを起動する

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

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

なお、今回はローカル環境でSpring Bootを起動しているため、サーバー名は「localhost」となる。また、application.propertiesに「server.port=8084」と指定しているため、ポート番号は「8084」となる。
4) Spring Bootアプリケーションを終了するには、左下の「■」を押下する

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






