一、SpringBoot 整合 Lombok
(一)新增依賴
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
(二)安裝外掛
由於 Lombok 採取的註解形式的,在編譯後,自動生成相應的方法,為了不讓 ide 瘋了,需要下載外掛了支援它。 以 idea 為例:查詢外掛 lombok plugin 安裝即可。
(三)註解介紹
1、案例
@Data註解
@Data
public class User implements Serializable {
private BigInteger id;
private String name;
private Integer age;
}
@Data註解就相當於@ToString、@Getter、@Setter、@EqualsAndHashCode、@NoArgsConstructor 幾個註解的組合。
2、@AllArgsConstructor
會生成一個包含所有變數,同時如果變數使用了@NotNull 註解, 會進行是否為空的校驗, 全部引數的建構函式的自動生成,該註解的作用域也是隻有在實體類上,引數的順序與屬性定義的順序一致。
3、@NoArgsConstructor
無參建構函式
4、@RequiredArgsConstructor
會生成一個包含常量(final),和標識了@NotNull的變數 的構造方法。
(四)如何使用 @AllArgsConstructor、@NoArgsConstructor、@RequiredArgsConstructor
它們都有三個引數可以設定
1、String staticName() default “”;
如果設定了它,將原來的構造方法的訪問修飾符將會變成 私有的,而外新增一個靜態構造方法,引數相同,名字是設定的字串的名字,訪問修飾符為公有的。
2、RequiredArgsConstructor.AnyAnnotation[] onConstructor() default {};
在類上添加註解。使用方法@RequiredArgsConstructor([email protected]__({@AnnotationsGoHere}))}。
例如我們在 Spring 專案中需要注入多個值,寫很多個 @Autowired 很麻煩,就可以使用這種方式:
@Repository
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class MongodbRepository {
private final MongoTemplate mongoTemplate;
...
}
3、AccessLevel access() default lombok.AccessLevel.PUBLIC;
建構函式訪問修飾符;