1. 程式人生 > >一、SpringBoot 整合 Lombok

一、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;
建構函式訪問修飾符;