好き嫌いの分かれる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
こんな感じになる

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