lombok相關學習

參考:https://blog.csdn.net/qq_36314960/article/details/79565899    並加上builder註解

lombok作用:幫助我們編寫getter/equals/toString/構造/setter方法的一個構建實體bean的“工具”。

lombok好處:1、簡化冗餘的JavaBean代碼;2、大大提高JavaBean中方法的執行效率;

lombok常用註解:

@Data,@getter,@setter,@NoArgsConstructor,@AllArgsConstructor,@ToString,@EqualsAndHashCode,@Slf4j,@Log4j。我們一個一個來看:

@builder註解:可以使用連接方法的方式構建/修改bean:

@Builder.Default   bean存在默認值的情況使用該註解

生成bean:

UserInfo userInfo = UserInfo.builder()
        .name("zzl")
        .email("[email protected]")
        .build();

修改bean:

 userInfo = userInfo.toBuilder()
        .name("OK")
        .email("[email protected]")
        .build();

@Data註解:在JavaBean或類JavaBean中使用,這個註解包含範圍最廣,它包含getter、setter、NoArgsConstructor註解,即當使用當前註解時,會自動生成包含的所有方法;

@getter註解:在JavaBean或類JavaBean中使用,使用此註解會生成對應的getter方法;

@setter註解:在JavaBean或類JavaBean中使用,使用此註解會生成對應的setter方法;

@NoArgsConstructor註解:在JavaBean或類JavaBean中使用,使用此註解會生成對應的無參構造方法;

@AllArgsConstructor註解:在JavaBean或類JavaBean中使用,使用此註解會生成對應的有參構造方法;

@ToString註解:在JavaBean或類JavaBean中使用,使用此註解會自動重寫對應的toStirng方法;

@EqualsAndHashCode註解:在JavaBean或類JavaBean中使用,使用此註解會自動重寫對應的equals方法和hashCode方法;

@Slf4j:在需要打印日誌的類中使用,當項目中使用了slf4j打印日誌框架時使用該註解,會簡化日誌的打印流程,只需調用info方法即可;

@Log4j:在需要打印日誌的類中使用,當項目中使用了log4j打印日誌框架時使用該註解,會簡化日誌的打印流程,只需調用info方法即可;

在使用以上註解需要處理參數時,處理方法如下(以@ToString註解爲例,其他註解同@ToString註解):

@ToString(exclude="column")

意義:排除column列所對應的元素,即在生成toString方法時不包含column參數;

@ToString(exclude={"column1","column2"})

意義:排除多個column列所對應的元素,其中間用英文狀態下的逗號進行分割,即在生成toString方法時不包含多個column參數;

@ToString(of="column")

意義:只生成包含column列所對應的元素的參數的toString方法,即在生成toString方法時只包含column參數;;

@ToString(of={"column1","column2"})

意義:只生成包含多個column列所對應的元素的參數的toString方法,其中間用英文狀態下的逗號進行分割,即在生成toString方法時只包含多個column參數;

此處提供一個類作爲參考:

@Data
@Builder
@AllArgsConstructor
public class APIResponse<T> {

    private static final long serialVersionUID = 1L;

    /**
     * 請求標識
     */
    private String requestId;

    /**
     * 返回碼
     */
    @Builder.Default
    private Integer code = BaseResponseCode.CODE_200;
    /**
     * code非200時返回錯誤信息
     */
    private String userMsg;
    /**
     * code非200時返回錯誤信息,開發者排查問題;需要base64解碼
     */
    private String developerMsg;
    /**
     * 服務器時間
     */
    private String timestamp = String.valueOf(System.currentTimeMillis());

    /**
     * 結果對象
     */
    private T content;

    public APIResponse() {
        this.code = BaseResponseCode.CODE_200;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章