1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Spring Boot Web アプリケーションを作る

Last updated at Posted at 2022-07-16

はじめに

記載情報は CI/CD に関連します。
実務上関わった環境・機能を身近な情報としてお届けしたく、投稿をはじめました。
各学習上、お金のかからない方法を選択していきます。

以下の手順を実施することで、Spring Boot Web アプリケーションを作る工程を模倣します。

対象者と関連環境・機能

この記事は下記のような人を対象にしています。

  • CI/CD 初学者
  • プログラミング初学者
  • 駆け出しエンジニア

記載している環境・機能は以下です。

  • Java
  • Spring Boot
  • Spring Web
  • thymeleaf
  • Spring Tool Suite 4

準備

No 参照 URL
1 Spring Tool Suite 4 インストール、Spring Initializr 、gradlew の利用

上記準備準備作業を行うことで空っぽの Spring Web アプリが立ち上がる状態になります。
ただし、このままですと起動後、/ へリクエストしても、HTTP ステータスコード:404(Not Found)が返るのみとなります。
これでは後続関連記事でコンテナ上稼働させてもいまいちだと思いますので、index.html の表示はさせてみたく思います。

Spring Boot Web アプリケーションに画面遷移機能を追加する

ソース

本作業実施後の状態となります。
web page 追加

最新はこちらとなりますが、clone 後に状態を遡って確認頂けます。
main の最新

実施した作業

発生差分は実物を確認してもらう方が早いかもしれません。
概要としては Thymeleaf を利用しての画面遷移(index ⇒ result)を追加、となります。
(「Thymeleaf(タイムリーフ)」とは Java テンプレートエンジンです。 MVC モデルでいう「V(ビュー)」にあたる部分。らしいです。。)

web page 追加した際の差分

├─main
│ ├─java
│ │ └─com
│ │ └─example
│ │ └─demo
│ │ DemoApplication.java
│ │ HelloSpringBootWebController.java   ※追加
│ │
│ └─resources
│ │ application.properties
│ │
│ ├─static
│ └─templates
│ index.html   ※追加
│ result.html  ※追加
│
└─test

以下、作業を進めるときに直面した困り事のご紹介です。
Spring Tool Suite 4 に振り回された気がします。

発生事象

Spring Web のサンプルアプリを作成していた際、Get で"/"アクセスした際、index.html が表示されるようにしたつもりでした。
しかし、"/"アクセスした際には index.html ではなく、「This application has no explicit mapping for /error, so you are seeing this as a fallback.」が出力される。
事は単純で build.gradle への thymeleaf 追記を漏らしていたことが原因でした。

build.gradle
dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' ※追記漏れしていた
}

Spring Tool Suite 4 を利用して動きを見ていたのですが、原因への対処をしたつもりであるのに症状が変化せず。。
結論、「build.gradle に thymeleaf を記載しているが、IDE 側でうまいこと認識せず、依存対象をローカルにダウンロードできていなかった」という事象だった模様です。
build.gradle の通りに依存対象が認識され、ビルドが通れば「$HOME/.gradle/caches/」に依存対象がローカルダウンロードされるはずなのに無かった、という内容です。
Spring Tool Suite 4 の怪しい動きに振り回された可能性が高く、plugins に「id 'eclipse'」を追加し、「gradlew cleanEclipse eclipse」を実行すると Spring Tool Suite 4 上からも意図した挙動となりました。
本筋ではない箇所で躓いてしまいました。。

備忘

build.gradle の dependencies を修正したのに挙動があやしかったら?

  • 「$HOME/.gradle/caches/」に依存対象がローカルダウンロードされているか要確認
  • なければ「gradlew cleanEclipse eclipse」実行とかで反映

関連作業

参考記事

Thymeleaf とは
【SpringBoot】This application has no explicit mapping for /error
ビルドしても更新が反映されなかったり、git の環境が壊れてしまったときにの対処方法

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?