- Authors

- Name
- Youngju Kim
- @fjvbn20031
手順
spring.ioでプロジェクトを作成
start.spring.ioにアクセスし、Javaバージョン、プロジェクト管理ツール、Bootバージョン、依存関係を設定した後、Generateボタンを押してプロジェクトファイルをダウンロードします。
私は以下のようにGradle-Groovy、Java、Boot 2.7.15、Java 11、spring-starter-web、thymeleafを選択しました。

IntelliJでプロジェクトを実行
Generateボタンを押してダウンロードしたzipファイルを解凍し、IntelliJを起動して該当フォルダをopenします。
HelloController.javaの作成
Controllerという新しいパッケージを作成し、HelloController.javaファイルを以下のように記述します。@ControllerアノテーションはSpringにこのクラスをControllerとして管理するよう伝える部分で、@GetMapping("hello")はhelloサフィックスが付いたURLのGETリクエストとhello関数をマッピングする処理です。
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController{
@GetMapping("hello")
public String hello(Model model){
model.addAttribute("data", "hello!!");
return "hello";
}
}
hello.htmlの作成
ThymeLeafテンプレートエンジンを使用してWebブラウザに表示するため、resources、templatesフォルダの下にhello.htmlを作成し、thymeleaf文法に従ってControllerのmodelに付加して渡されたデータを画面に出力するコードを記述します。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>
</body>
</html>
HelloController.javaとhello.htmlの2つのファイルを作成しました。プロジェクトのソースツリーは以下の通りです。

Spring Bootの実行
HelloSpringApplicationにSpring Bootサーバーの起点であるmain関数が存在します。マウスをホバーするとrunボタンが表示されるので、このボタンを押してSpring Webサーバーを起動します。
以下のようにログメッセージにTomcatサーバーが8080ポートで正常に起動されたというメッセージが出力されれば正常です。
2023-09-03 10:14:44.512 INFO 53925 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2023-09-03 10:14:44.519 INFO 53925 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2023-09-03 10:14:44.519 INFO 53925 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.79]
2023-09-03 10:14:44.563 INFO 53925 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2023-09-03 10:14:44.564 INFO 53925 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 478 ms
2023-09-03 10:14:44.663 INFO 53925 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html]
2023-09-03 10:14:44.752 INFO 53925 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2023-09-03 10:14:44.759 INFO 53925 --- [ main] h.hellospring.HelloSpringApplication : Started HelloSpringApplication in 0.909 seconds (JVM running for 1.099)
以下のようにhttp://localhost:8080/helloにWebブラウザでアクセスすると、helloメッセージが表示されることを確認できます。

Gradleでビルドして実行する方法
IntelliJを使用せずに、ターミナルで以下のコマンドを通じてもSpring Boot Applicationのビルドおよび実行が可能です。
$./gradlew clean build
$ cd build/libs
$ java -jar hello-spring-0.0.1-SNAPSHOT.jar
Springは本当に巨大なフレームワークで、以前はTomcatサーバーが内蔵されていなかったため開発に多くの困難がありましたが、現在はSpring Bootのおかげでこのように簡単にWebアプリケーションを作成できるようになりました。しかし、抽象化の度合いが上がった分、開発者がSpring coreに手を加える機会がないため、原理を理解せずに使用してしまう懸念があります。このような状態では、問題が発生した際に原因を特定することが容易ではありません。Spring Bootを使って素早く生産性の高いSpring開発を行いつつ、同時にSpringの内部にも常に関心を持つべきです。
References
- キム・ヨンハンさんのInflearn講座:スプリング入門 - スプリングブート