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」のソースコード内容は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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」のソースコード内容は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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のソースコード内容は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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を利用したソースコードとなっている。
1 2 3 4 5 6 7 8 9 10 | <!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アプリケーションとして実行すればよい。