はじめに
これまでにJavaの開発経験がなかったのでJavaをもっと知るために開発を始めました。
JavaでWeb開発をしたいと思ったときにJavaのフレームワーク「Spring」を知ったのでSpringを使って開発していきます。
目次
Springとは
SpringはJavaで開発されているフレームワークの一つ。開発はMVCモデルです。(MVCモデルについては今回は省きます。)
Model システムの中でロジックを担当。データベースとデータのやり取りを行う。
View 表示や入出力。Webブラウザに表示するHTMLを動的に生成する部分。
Controller ユーザーの入力に基づき、ModelとViewを制御する。コントローラーはクライアントから来たリクエストURLに応じて、あらかじめ設定した処理を行います。
Thymeleafとは
「タイムリーフ」と読みます。テンプレートエンジンの一つです。ThymeleafにはHTMLの他に、XMLやJavascript、CSS等があります。
/src/main/resources/templates/hello.html
のようにtemplates
フォルダ配下にテンプレートファイルを置いていきます。
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Hello Thymeleaf</title>
</head>
<body>
<h1 th:text="${name}"></h1>
</body>
</html>
Controllerの記述
クラスに対して @Controller
を記述することでSpringはそのクラスをControllerとして認識します。
ControllerはJavaのクラス、拡張子は.javaです。
@Controller
public class Controller {
...
}
ページを表示するコントローラーを作成する場合
@Controller
public class GreetingController {
@GetMapping("/greeting")
public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}
※ページを表示しようとアクセスしたときにエラーが出たときは以下が間違っている場合があります。
- コントローラーのファイル、テンプレートファイルの記述
- ページを置く位置が間違っている
正/src/main/resources/templates/hello.html
誤/src/main/resources/templates/HomeController.java
- プロジェクト作成時の設定
JAR/WAR
Spring開発中にJAR,WARというワードも出てきたので書いておきます。
WAR,JARはいづれもJava関連のモジュールを「デプロイ可能な単位」に固めたもの。この形式でJBossやTomcatといったアプリケーションサーバに配置して稼働させることが可能になります。
-
JARファイル
JARファイルはJavaのクラスファイル等をまとめて固めた資源で「.jar」の拡張子になっている。 -
WAR
Java製のWebアプリで利用されるクラスファイル(servlet)、設定ファイル、JSPやHTMLファイル、JAR形式のライブラリがまとめられている。拡張子は「.war」。
JARファイルはJava Runtime ENvironment(JRE)がクラスと関連リソースを含むアプリケーション全体を1回のリクエストでデプロイできるようにするもの。
WARファイルはWebアプリケーションのテストとデプロイを簡単に行うことができる。