EclipseでSpring Frameworkを利用するために

Spring Frameworkを使う場合、STS(Spring Tool Suite)を利用するとことが多いと思われますが、今現在、Eclipseを使っていて、そのEclipseを使い続けていきたい場合、プラグインを導入すれば良いようです。

Spring Tool Suite(STS)プラグインのインストール

Eclipseを起動し、「ヘルプ(H)」>「Eclipse マーケットプレース(M)...」を選択。

f:id:ts0818:20170907201330j:plain

「検索(I):」で「STS」と入力すると、「Spring ツール」が表示されるので「インストール」をクリック。

f:id:ts0818:20170907201327j:plain

「確認」をクリック。

f:id:ts0818:20170907201321j:plain

インストールが始まります。

f:id:ts0818:20170907201318j:plain

「使用条件の条項に同意します(A)」にチェックし「完了(F)」をクリック。

f:id:ts0818:20170907204201j:plain

Eclipseの再起動を促されるので、再起動。

f:id:ts0818:20170907204045j:plain

Spring Frameworkが利用できるようになりました。まずは、画面に表示されてる「ワークベンチ」をクリック。

f:id:ts0818:20170907204041j:plain

「ウィンドウ(W)」>「設定(P)」をクリック。

f:id:ts0818:20170907204037j:plain

Maven」を選択し、チェック項目にチェックを追加。「適用」をクリック。

f:id:ts0818:20170907204031j:plain

「OK」をクリック。

f:id:ts0818:20170907204025j:plain

 続いて、「ウィンドウ(W)」>「パースペクティブを開く(O)」>「その他(O)...」をクリック。

f:id:ts0818:20170907204845j:plain

「Spring」を選択し、「OK」。

f:id:ts0818:20170907204841j:plain

パースペクティブ」に「Spring」が追加されました。

f:id:ts0818:20170907204837j:plain

「ファイル(F)」「新規(N)」「Spring スターター・プロジェクト」をクリック。

f:id:ts0818:20170907204833j:plain

適当に「名前」を入力。Springのプロジェクト用に「ワーキング・セット」を作ろうと思うので、「ワーキング・セット」の「新規(W)...」をクリック。

f:id:ts0818:20170907204830j:plain

Java」を選択し、「次へ(N)>」をクリック。 

f:id:ts0818:20170907205507j:plain

「ワーキング・セットの内容(C)」が空になっているのを確認し、「完了(F)」をクリック。

f:id:ts0818:20170907205504j:plain

「次へ(N)>」をクリック。 

f:id:ts0818:20170907205500j:plain

とりあえず、「Web」の中の「Web」にチェックを入れ、「次へ(N)」をクリック。(後から、追加することができます。Mavenを使う場合は、pom.mlで追加していく形になります。実際に、「thymeleaf」というものを後で追加していきます。)

f:id:ts0818:20170907205457j:plain

 「完了(F)」をクリック。 

f:id:ts0818:20170907210210j:plain

プロジェクトの作成が始まります。

f:id:ts0818:20170907205454j:plain

「Spring Boot 」でプロジェクトが作成されました。

f:id:ts0818:20170907210954j:plain

f:id:ts0818:20170907210938j:plain

f:id:ts0818:20170907210935j:plainをクリックし、「ワーキング・セットの構成(W)....」をクリック。f:id:ts0818:20170907210950j:plain

「spring」以外を非表示にしておきます。「OK」。

f:id:ts0818:20170907210945j:plain

Springで開発していく場合、「src/main/java」に「java」系のファイルを、「src/main/resources」 >「static」に「css」「js」「img」などのファイルを配置し、「src/main/resources」 >「templates」に「jsp」「html」などのファイルを配置していく形になるようです。

f:id:ts0818:20170907212117j:plain

「src/main/java」>「com.example.demo」に自動的に作成されてる「[プロジェクト名]Application.java」というファイルが、「Spring Boot」プロジェクトのエントリーポイント(サーバーが起動したとき、一番初めに実行される)のようです。

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class FirstSpringApplication {

	public static void main(String[] args) {
		SpringApplication.run(FirstSpringApplication.class, args);
	}
}

今回は、画面表示(MVCモデルで言うところのView部分)に「jsp」を使わず、「thymeleaf」というテンプレートエンジンを使っていきます。

これは、pom.xmlで追加していきます。「パッケージ・エクスプローラー」にあった「pom.xml」をクリックします。下の方に、タブがあるので「依存関係」をクリック。

f:id:ts0818:20170907213905j:plain

「依存関係」のほうの「追加...」をクリック。

f:id:ts0818:20170907213900j:plain

「グループ ID、アーティファクト ID または sha 1 接頭部またはパターン(*)の入力(E):」で「thyme」ぐらいまで入力すると、「検索結果(S):」が表示されるので、「org.springframework.book spring-boot-starter-thymeleaf(managed)」を選択し、「OK」。

f:id:ts0818:20170907213856j:plain

 「thymeleaf」が追加されたので、「Ctrl + S」とかで保存しましょう。 

f:id:ts0818:20170907215432j:plain

thymeleafを試してみる

今回は、MVCモデルのうち、VCを実装します。

それでは、「src/main/resources」 >「templates」を選択した状態で右クリックし、「新規(W)」>「その他(O)...」をクリック。

f:id:ts0818:20170907215428j:plain

「Web」>「HTMLファイル」を選択し、「次へ(N)>」をクリック。

f:id:ts0818:20170907215423j:plain

「ファイル名(M):」を入力し「次へ(N)>」をクリック。

f:id:ts0818:20170907215417j:plain

「完了(F)」をクリック。

f:id:ts0818:20170907215411j:plain

続いて、「src/main/java」>「com.example.demo」を選択した状態で右クリックし(パッケージ名は人それぞれ違ってると思います)、「新規(W)」>「フォルダー」を選択。

f:id:ts0818:20170907220127j:plain

「フォルダー名(N):」を入力し、「完了(F)」。

f:id:ts0818:20170907220124j:plain

作成したフォルダーを選択した状態で右クリックし、「新規(W)」>「クラス」を選択。

f:id:ts0818:20170907220121j:plain

「名前(M):」を入力し、「完了(F)」。

f:id:ts0818:20170907220117j:plain

javaファイルができました。

f:id:ts0818:20170907220114j:plain


 

ファイルの編集


 

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 HelloController {

	@RequestMapping("/")
	public String firstView(Model model) {
		model.addAttribute("hello", "ごはんが美味しい季節です");
		return "hello";
	}
}

hello.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>thymeleafのテスト</title>
</head>
<body>
  <p th:text="${hello}">ズバババン!thymeleaf</p>
</body>
</html>

それでは、サーバーを起動してみます。初回は、「実行(R)」>「Spring Boot アプリケーション」を選択。

f:id:ts0818:20170907222218j:plain

「コンソール」でエラーがなければ起動できてます。

f:id:ts0818:20170907222213j:plain

http://localhost:8080/」にアクセスすると、「hello.html」が表示されます。

f:id:ts0818:20170907222206j:plain

Springでは、アノテーションをつけることでいろいろなことができます。今回は、「HelloController.java」に「@Controller」というアノテーションをつけたので、「HelloController.java」がControllerとして機能します。

メソッドについていた「@RequestMapping("アクセス先")」で、ブラウザからのリクエストを受け付けます。「http://localhost:8080/」でアクセスした場合、「@RequestMapping("/")」に一致するので、firstView()メソッドが実行されます。

model.addAttribute("templates側のファイルで使うときの名前", [値])で、hello.html側で[値]を利用できるようにしています。

return "ファイル名(拡張子なし)" 、とすることでファイルを表示します。ここでは、hello.htmlが表示されます。

thymeleafの機能で、「th:text="${model.addAttribute()でセットした名前}"」の値を表示しています。値が無い場合は、今回ですと、「ズバババン!thymeleaf」が表示されます。 

 

ちなみに、サーバー停止は、上部にある f:id:ts0818:20170907231445j:plain クリックで。

f:id:ts0818:20170907231323j:plain

 

徐々に、thymeleafに慣れていきたいですね。