読者です 読者をやめる 読者になる 読者になる

Spring BootでLombokを使ってみたら楽だった

JJUG CCC

好き嫌いの分かれるLombok。僕は好き。

使うアノテーション

使い始めは @Data とか使って「便利!」とか思ってたけど。最近は使わなくなった。というのも、DDDスタイル好きなのでモデルでは setter を公開しなくて、なので、使うのはこの3つくらいかな。

@Getter
@EqualsAndHashCode
@ToString

@Accessors にfluentの設定を入れると例えば firstName フィールドに対する getter が firstName() になるので、こっちの方が好みではあるんだけど、getXxxの方がJSON関係とか色んなライブラリで使いやすいから普通に getter で使う方が良さそうかな。あと、単なるDTOだったら使うかな?とも思ったんだけど結局 public フィールド使うから @Data 使わなくて @EqualsAndHashCode@ToString を使うくらい。使いすぎには注意したい。

Spring Boot + Lombok

ただ、Lombokはアノテーションプロセッサーを使ってることもあり。ビルド周りの設定が面倒、特にMavenの設定。すぐ忘れる。って気持ちだったんだけど。そこはさすがSpring Boot。楽だった。pomに↓の依存関係を追加するだけ。親pomがいい具合にやってくれてるんだろうなぁ。

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <scope>provided</scope>
    </dependency>

Eclipseの方は普通にlombokをインストールすればよくて

java -jar lombok.jar

こんな感じになる

f:id:bufferings:20161209074337p:plain

Spring Boot使うとLombokも簡単に使えて良いなー。