IntelliJ IDEA

IntelliJ IDEAでlombokを使ってみた

lombokというライブラリを使うと、JavaBeanクラスにおいて、アノテーション付与するだけで、getterメソッド・setterメソッドを利用することができるため、JavaBeanクラスのソースコードを大幅に短くすることができる。

ただし、IntelliJ IDEA上でlombokを使えるようにするには、build.gradleにライブラリを追加するだけでなく、Lombokプラグインを追加したり、注釈プロセッサーの設定変更をしたりする必要もある。

今回は、lombokを使うためのIntelliJ IDEA上での設定方法と、lombokを使ったサンプルプログラムについて共有する。



前提条件

以下の記事のIntelliJ IDEAのインストールが完了していること。

IntelliJ IDEAをインストールしてみた「IntelliJ IDEA(インテリジェイ アイディア)」という、Eclipseと同等の機能をもつJava用統合開発環境を使って、Sp...

また、以下の記事のSpring BootのWEB画面用アプリの作成手順において、「IntelliJ IDEA上でSpring Bootプロジェクトの読み込み」までの手順が完了していること。

IntelliJ IDEA上でGradleを使ってWeb画面のSpring Bootプロジェクトを作成してみたSpring Bootのプロジェクトを新規作成を「IntelliJ IDEA」のメニューから実施しようとしたところ、無料の「Commun...

 

やってみたこと

  1. Lombokプラグインの追加
  2. 注釈プロセッサーの設定変更
  3. サンプルプログラムの作成と実行

 

Lombokプラグインの追加

IntelliJ IDEA上でlombokを使えるようにするには、gradleに設定を追加するだけでなく、IntelliJ IDEAのプラグインとして追加する必要がある。その手順は以下の通り。

1) 「ファイル」メニューから「設定」を選択
lombokプラグインの追加1

2) 「プラグイン」を選択後、「マーケットプレース」タグを選択し、Lombokプラグインを探した上で、「Install」ボタンを押下
lombokプラグインの追加2

3) 下記ダイアログが表示されるので、「受諾」ボタンを押下
lombokプラグインの追加3

4)「Restart IDE」ボタンを押下
lombokプラグインの追加4

5) 下記ダイアログが表示されるので、「再開」ボタンを押下
lombokプラグインの追加5
その後、IntelliJ IDEAが自動的に再起動されるので、再起動を待つ



注釈プロセッサーの設定変更

IntelliJ IDEA上でlombokを使えるようにするには、さらに、注釈処理の注釈プロセッサーを使用できるようにする必要がある。その手順は以下の通り。

1)「ファイル」メニューから「設定」を選択
注釈プロセッサーの設定変更1

2)「ビルド、実行、デプロイ」→「コンパイラー」→「注釈プロセッサー」を順に選択し、「注釈処理を使用可能にする」チェックボックスにチェックを入れ、「適用」ボタンを押下
注釈プロセッサーの設定変更2

3)「OK」ボタンを押下し、画面を閉じる
注釈プロセッサーの設定変更3



サンプルプログラムの作成と実行

今回、サンプルプログラムは、Spring BootのWEB画面用アプリ作成時に利用しているdemoプロジェクト内に作成した。そのプログラム構成は以下の通りであるが、今回は「build.gradle」「SampleForm.java」「CallSampleForm.java」のみ利用している。
lombokを使用したプログラムの構成

また、build.gradleは以下の通りで、lombokライブラリ(lombok:1.18.10)についての記述を2行追加している。

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ライブラリが追加されることが確認できる。
lombok追加後の外部ライブラリ

さらに、「SampleForm.java」「CallSampleForm.java」はそれぞれ以下の通りで、JavaBeanクラスである「SampleForm.java」において、アノテーション付与するだけで、getterメソッド・setterメソッドを利用できていることが確認できる。

package com.example.demo;

import lombok.Getter;
import lombok.Setter;

public class SampleForm {

    /**
     * lombokのアノテーションを付与したsampleVal
     * @Getter を付与することでgetterメソッドが、
     * @Setter を付与することでsetterメソッドが、
     * 自動的に生成される
     */
    @Getter
    @Setter
    private String sampleVal;

}
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を使用したプログラムの実行結果

要点まとめ

  • lombokを利用すると、変数に「@Getter」「@Setter」の各アノテーションを付与するだけで、getterメソッド・setterメソッドを利用できる
  • IntelliJ IDEA上でlombokを使えるようにするには、Lombokプラグインの追加と、注釈処理を使用可能にする設定変更を行った上で、build.gradleのdependenciesにlombokライブラリを追加する必要がある。