仕事でJavaは少しくらいは触っているけど、流行りのフレームワークには触れる機会がなく過ごしていますが何となくSpring Bootを見ていると、もしかしたら今度こそこれがスタンダードのフレームワークとして定着するんじゃないかなぁ?覚えて損はない。と思い立って、触ってみる事にしました。
【スターター・プロジェクト】
はじめてのSpring Bootプロジェクト作成ですが、他に選択が無いので定番かもしれませんがここからスタートします。
1.プロジェクト設定1
Gradleというのがどうも筆者は設定が見やすいので、これにします。
パッケージは、jarはまだよくわからないのでwarとします。
2.プロジェクト設定2
とりあえずは、動かしてみたいだけなのでテンプレートエンジンとwebだけを選択
たぶん後で追加はできるはず。
4.コントローラーの作成
Controllerは主にWebページ用のコントローラで使用する。
RestControllerはJsonやXML等を返すWebAPI用のコントローラで使用する。
との事ですが、どっちも試してみたいと思います。
まずは、RestControllerから作ります。
package com.example.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestRest {
@RequestMapping("/Rest")
public String Rest() {
return "これはRest";
}
}
5.実行してみる
実行で「Spring Bootアプリケーション」を選択する
6.ブラウザーからアクセスしてみる
どうもTomcatは動いているが、肝心の作成したコントローラが見つからない?
いったいどういうこと?
7.RestControllerをSpringBootApplicationが置いてあるパッケージに移動させてみる
8.再度ブラウザーからアクセス
なぜか、動いた!という事は、SpringApplicationが置いてある配下しかコントローラは作れないってこと?
9.試しにSpringApplicationの配下にパッケージを作ってみます。
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestRest {
@RequestMapping("/Rest")
public String Rest() {
return "これはRest。demo配下のパッケージより";
}
}
やっぱりそうか、そうなのね。
まぁともかくちょっと理解が進んだ。
RestControllerはこれくらいでいいだろう。
次に進みます。Controllerを使って、テンプレートエンジンを使ってみます。
10.Controllerを作ってみる。
「templates」フォルダにindex.htmlを作成します。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>初めてのThymeleaf</title>
</head>
<body>
<h1 th:text="${message}"></h1>
</body>
</html>
com.example.demo.controllerに「TestController.java」を作成。
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping("/")
public String index(Model model) {
model.addAttribute("message", "Thymeleaf動きました!");
return "index";
}
}
11.実行してtemplatesの動作確認
ちゃんと動きました!めでたしめでたし。
文字コードは何も意識しないで文字化けもせず、すんなりとここまで来れるんですね。
Spring Bootなかなかよさそうですね。次はフォームを作って見よう。