在日常開發過程中,通常都會定義大量的JavaBean,然后通過IDE去生成其屬性的構造器、getter、setter、equals、hashcode、toString方法,當要對某個屬性進行改變時,比如命名、類型等,都需要重新去生成上面提到的這些方法。我們可以使用lombok插件幫助我們解決以上問題,只需要加上相應的注解就可以實現對應的功能。
Lombok簡介
Lombok 是一個 java 庫,不需要編寫 getter 或 equals 等方法,只需要使用一個注釋,類就有一個功能齊全的構建器。通過簡單的注解形式來幫助我們簡化日常的Java代碼開發,使用對應的注解,可以在編譯源碼的時候生成對應的方法。
官方地址:https://projectlombok.org/
github地址:https://github.com/rzwitserloot/lombok
Lombok安裝使用
- 安裝
IDEA中添加Lombok插件, File -> Setting -> Plugins 搜索Lombok Plugin, 點擊install,安裝完成后重啟IDEA。
如果在marketpalce中搜索不到lombok時,也可以先下載lombok插件,下載地址Github:
或官網:
選擇合適的安裝包版本下載到本地,然后通過idea(或其他開發ide)安裝本地插件包方式,安裝之后重啟即可,如下圖所示
- 使用
在Maven項目的pom.xml中添加配置:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> </dependency>
以下介紹一些常用的注解使用,更完整的注解使用見https://projectlombok.org/features/all
@Getter / @Setter
可以作用在類上和屬性上,放在類上,會對所有的非靜態(non-static)屬性生成Getter/Setter方法,放在屬性上,會對該屬性生成Getter/Setter方法。並可以指定Getter/Setter方法的訪問級別。
@EqualsAndHashCode
默認情況下,會使用所有非瞬態(non-transient)和非靜態(non-static)字段來生成equals和hascode方法,也可以指定具體使用哪些屬性。
@ToString
生成toString方法,默認情況下,會輸出類名、所有屬性,屬性會按照順序輸出,以逗號分割。
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
無參構造器、部分參數構造器、全參構造器,如果需要重載多個構造器則需要自己定義聲明。
@Data
@ToString, @EqualsAndHashCode, 所有屬性的@Getter, 所有non-final屬性的@Setter和@RequiredArgsConstructor的組合
@Slf4j
日志注解,等效於private static final Logger logger = org.slf4j.LoggerFactory.getLogger(xxx.class);
平時開發使用以上注解就差不多了,可以幫助我們省去很多重復的操作,提升工作效率。