Lombok を使用してJavaのボイラープレートコードを極力少なくしましょう!

2021年5月6日

この記事では ボイラープレートコード を撲滅すべく、STSでLombokの準備について書きました。

Spring Tools SuiteをWindowsにJavaをインストールしないで起動してみました!でSTSの環境は整いました。

今回はさらにLombokを導入していきたいと思います。

ボイラープレートコード

この言葉、ご存じですか?

一例を挙げると「ああ、いつものアレなコードね」と分かっていいただけると思います。

public class Hoge {
  private String fuga;
  public String getFuga() {
    return fuga;
  }
  public String setFuga(String fuga) {
    this.fuga = fuga;
  }
}

コイツ(アクセサ)のことです。
1つ2つなら我慢できますが10個も20個も似たようなコードを実装となるとおっくですよね。
STSでもこの辺り自動生成で助けてくれたりするのですがズラズラズラ~っとコードが並んで見た目もなんだかなぁ・・・ということになります。

Wikipediaでは

コンピュータプログラミングでは、殆ど、または全く変化することなく、複数の場所で繰り返される定型コードのセクションのこと。

とあります。ボイラープレートコードとは「定型コード」を指します。
このほかにもJavaではたくさんの定型コードが存在します。

私もまだボイラープレートコードという言葉が出てくるよりも昔に思っていたことでした。
コードは書けば書くほど不具合率が上昇します。なによりモチベーションの低下を招いてしまことが良くないと思っていました。

Lombokの登場

そんなところに現れたのがLombokというモジュール(?)です。

このモジュールはボイラープレートコードに対してアノテーションプロセッサというアプローチで
コンパイル時にアクセサやらなんやらを自動的にコード生成し埋め込んでくれます。
私たちはただアクセサがほしい変数に既定のアノテーションを付与すればよいだけです。

余談ですがアノテーションプロセッサとして使用されるアノテーションと、普通のアノテーションでは
利用されるタイミングが異なると私は考えました。
アノテーションプロセッサとして使用されるアノテーションはコンパイル時に効果を発揮し
普通のアノテーションは実行時に効果を発揮するイメージです。(あくまでも私の考えです。)

さっそく導入してみましょう

Eclipse + STSにlombokをインストールするを参考にさせていただきました。
ありがとうございました。

公式サイトにアクセスし、Lombokをゲットします。

 

lombok.jarがダウンロードできたと思います。

そのjarファイルをSpringToolSuite4.exeのあるフォルダにコピーもしくは移動させます。
(別にどこにあってもいいような気はしますが)

同フォルダにて「java.exe」を探します。

右クリックして「ファイルの場所を開く」をクリック。

開いたフォルダのパスをコピーしてください。

 

Windowsマーク  + Rを押して「ファイル名を指定して実行」画面を出します。
そこに「cmd」と入力してOKをクリック

cdコマンドを実行します。第一引数には先ほどコピーした文字列をペーストしておきましょう。
(私の場合はドライブ間の移動となるので/d オプションをつけています。)

以下のコードを実行します。

> java.exe -jar {STSインストールフォルダ}\lombok.jar

するとLombokのインストーラが起動します。
起動直後にIDEを探す処理が始まります。

あら、私の場合は見つけられなかったようです(笑

 

しょうがないので手動でインストールです。
STSのインストールフォルダを指定します。

すると、自動でSpringToolSuite4.exeを選択している状態になります。
Install / Updateボダンをクリックします。

おお!成功しましたね!
Quit Installerボタンをクリックして終了させておきましょう。

SpringToolSuite4.iniをテキストエディタで開いてみると・・・

うまくいっているようですね!

明日はLombokの威力を確認するために実装してみましょうかね😄