好き嫌いの分かれる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も簡単に使えて良いなー。