lombokというライブラリを使うと、JavaBeanクラスにおいて、アノテーション付与するだけで、getterメソッド・setterメソッドを利用することができるため、JavaBeanクラスのソースコードを大幅に短くすることができる。
ただし、IntelliJ IDEA上でlombokを使えるようにするには、build.gradleにライブラリを追加するだけでなく、Lombokプラグインを追加したり、注釈プロセッサーの設定変更をしたりする必要もある。
今回は、lombokを使うためのIntelliJ IDEA上での設定方法と、lombokを使ったサンプルプログラムについて共有する。
前提条件
以下の記事のIntelliJ IDEAのインストールが完了していること。
また、以下の記事のSpring BootのWEB画面用アプリの作成手順において、「IntelliJ IDEA上でSpring Bootプロジェクトの読み込み」までの手順が完了していること。
やってみたこと
Lombokプラグインの追加
IntelliJ IDEA上でlombokを使えるようにするには、gradleに設定を追加するだけでなく、IntelliJ IDEAのプラグインとして追加する必要がある。その手順は以下の通り。
2) 「プラグイン」を選択後、「マーケットプレース」タグを選択し、Lombokプラグインを探した上で、「Install」ボタンを押下
5) 下記ダイアログが表示されるので、「再開」ボタンを押下
その後、IntelliJ IDEAが自動的に再起動されるので、再起動を待つ
注釈プロセッサーの設定変更
IntelliJ IDEA上でlombokを使えるようにするには、さらに、注釈処理の注釈プロセッサーを使用できるようにする必要がある。その手順は以下の通り。
2)「ビルド、実行、デプロイ」→「コンパイラー」→「注釈プロセッサー」を順に選択し、「注釈処理を使用可能にする」チェックボックスにチェックを入れ、「適用」ボタンを押下
サンプルプログラムの作成と実行
今回、サンプルプログラムは、Spring BootのWEB画面用アプリ作成時に利用しているdemoプロジェクト内に作成した。そのプログラム構成は以下の通りであるが、今回は「build.gradle」「SampleForm.java」「CallSampleForm.java」のみ利用している。
また、build.gradleは以下の通りで、lombokライブラリ(lombok:1.18.10)についての記述を2行追加している。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | plugins { id 'org.springframework.boot' version '2.1.7.RELEASE' id 'java' } apply plugin: 'io.spring.dependency-management' group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' 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' compileOnly 'org.projectlombok:lombok:1.18.10' annotationProcessor 'org.projectlombok:lombok:1.18.10' } |
build.gradleを更新すると、下図のように、外部ライブラリ内に、lombokライブラリが追加されることが確認できる。
さらに、「SampleForm.java」「CallSampleForm.java」はそれぞれ以下の通りで、JavaBeanクラスである「SampleForm.java」において、アノテーション付与するだけで、getterメソッド・setterメソッドを利用できていることが確認できる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package com.example.demo; import lombok.Getter; import lombok.Setter; public class SampleForm { /** * lombokのアノテーションを付与したsampleVal * @Getter を付与することでgetterメソッドが、 * @Setter を付与することでsetterメソッドが、 * 自動的に生成される */ @Getter @Setter private String sampleVal; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package com.example.demo; public class CallSampleForm { public static void main(String[] args){ SampleForm form = new SampleForm(); //SampleForm内の、sampleValのsetterメソッドの呼び出し form.setSampleVal("Set Sample Val."); //SampleForm内の、sampleValのgetterメソッドの呼び出し String str = form.getSampleVal(); System.out.println(str); } } |
また、サンプルプログラムの実行結果は以下の通りで、sampleValに設定した値の出力が確認できる。
要点まとめ
- lombokを利用すると、変数に「@Getter」「@Setter」の各アノテーションを付与するだけで、getterメソッド・setterメソッドを利用できる
- IntelliJ IDEA上でlombokを使えるようにするには、Lombokプラグインの追加と、注釈処理を使用可能にする設定変更を行った上で、build.gradleのdependenciesにlombokライブラリを追加する必要がある。