Spring Boot STS利用

STS(Spring Tool Suite)上でlombokを利用してみた

今回は、STSを利用して、lombokを利用してみたので、その手順を共有する。STS上でlombokを利用できるようにするには、あらかじめSTS上にlombokをインストールしておく必要がある。

前提条件

下記記事の手順に従って、STSによるSpring Bootプロジェクトを作成済であること

STS上でGradleを使ってWeb画面のSpring Bootプロジェクトを作成してみた今回は、STSを利用して、下記記事と同等のSpring Bootアプリケーションを作成してみたので、その手順を共有する。なお、今回もビル...

lombokのインストール

STSにlombokをインストールする。その手順は以下の通り。

1) STS(Spring Tool Suite)が起動している場合は終了する

2) lombok-(バージョン).jarファイルを探し、ダブルクリック
下図のように、「C:\Users\(ユーザー名)\.gradle\caches\modules-(X)\files-(X.X)」下にGradleでダウンロードされたファイルが配置されているので、そこから「lombok-(バージョン).jar」を探す
lombokのインストール_2

3) 下記ダイアログが出るため「OK」ボタンを押下
lombokのインストール_3

4) 「Specify location …」ボタンを押下し、STSの起動exe(SpringToolSuite4.exe)を選択
lombokのインストール_4_1

lombokのインストール_4_2

5) 「IDEs」に先ほど設定したexeファイルが選択されていることを確認後、「Install / Update」ボタンを押下
lombokのインストール_5

6) インストールが完了すると、下記ダイアログが表示されるので、「Quit Installer」を押下
lombokのインストール_6

7) 「SpringToolSuite4.ini」の最終行に「-javaagent:C:\work\sts\sts-4.5.1.RELEASE\lombok.jar」が追記されていることを確認
lombokのインストール_7_1

lombokのインストール_7_2



サンプルプログラムの内容

今回作成したlombokを利用したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠のうち、前提条件のプログラムと比較して、「DemoForm.java」は今回新規で作成したプログラムで、他は変更したプログラムとなる。

build.gradleの内容は以下の通りで、lombokの設定を追加している。

plugins {
	id 'org.springframework.boot' version '2.2.4.RELEASE'
	id 'io.spring.dependency-management' version '1.0.9.RELEASE'
	id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '13'

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation('org.springframework.boot:spring-boot-starter-test') {
		exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
	}
	//lombokの設定
	compileOnly 'org.projectlombok:lombok:1.18.10'
	annotationProcessor 'org.projectlombok:lombok:1.18.10'
}

test {
	useJUnitPlatform()
}

なお、STSの場合は、build.gradleの修正内容を反映するには、以下のように、プロジェクトを選択し右クリックし、「Gradle」メニューから「Gradleプロジェクトのリフレッシュ」を選択する。
Gradleプロジェクトのリフレッシュ

Formオブジェクトの内容は以下の通り。lombokのアノテーション「@Data」をクラスに付与した上で、テスト用文字列「testStr」を定義している。「@Data」が付与されているため、「testStr」のGetter/Setterメソッドが利用できるようになっている。

package com.example.demo;

import lombok.Data;

/**
 * Formオブジェクトのクラス
 */
@Data
public class DemoForm {

    /** テスト用文字列 */
    private String testStr;

}
サラリーマン型フリーランスSEという働き方でお金の不安を解消しよう先日、「サラリーマン型フリーランスSE」という働き方を紹介するYouTube動画を視聴しましたので、その内容をご紹介します。 「サ...

次に、コントローラクラスの内容は以下の通り。DemoFormのテスト用文字列「testStr」に値を設定した後で、それを画面表示用のModelオブジェクトに設定している。

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class DemoController {

	@RequestMapping("/")
	public String index(Model model) {
		DemoForm demoForm = new DemoForm();
		demoForm.setTestStr("テスト用文字列を設定しました");
		model.addAttribute("testStr", demoForm.getTestStr());
		return "index";
	}
	
}

さらに、HTMLファイルの内容は以下の通り。Modelオブジェクトの値を画面上で表示している。

<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>index page</title>
</head>
<body>
          設定された文字列:
    <p th:text="${testStr}">ここにFormオブジェクトに設定した文字列が設定されます</p>
</body>
</html>

STSを起動し、Webブラウザ上で「http://(サーバー名):(ポート番号)/」とアクセスすると、下記画面が表示され、DemoFormのテスト用文字列「testStr」に設定した値が表示されることが確認できる。
サンプルプログラムの実行結果

要点まとめ

  • STS上でlombokを利用するには、あらかじめSTS上にlombokをインストールしておく必要がある。