第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Java DTO 類上使用數(shù)據(jù)注釋

在 Java DTO 類上使用數(shù)據(jù)注釋

哈士奇WWW 2021-07-12 18:57:37
我在對 DTO 類使用數(shù)據(jù)注釋時感到困惑。這是我的示例課程。@Datapublic class MyClass {   private Long id;   private String name;}我在網(wǎng)上讀到,專門在 DTO 類上使用 Data 注釋將允許使用生成的 setter 更改字段的值。我應該刪除 lombok 數(shù)據(jù)注釋嗎?并手動實現(xiàn) getter 和 setter。謝謝 :)
查看完整描述

3 回答

?
白衣非少年

TA貢獻1155條經(jīng)驗 獲得超0個贊

我會避免在 DTO 中使用 @Data,因為它有太多陷阱。首先,正如您所提到的,它是可變的,您并不真正想要 DTO。盡管它是可變的,但它實現(xiàn)了 equals() 和 hashCode() 這只是自找麻煩。

您可以將 @Value 用于不可變的 DTO。對于傳入的 DTO,您可能需要添加lombok.anyConstructor.addConstructorProperties到 lombok.config,這將允許像 jackson 這樣的庫在沒有默認構(gòu)造函數(shù)的情況下反序列化到您的 POJO。


查看完整回答
反對 回復 2021-07-14
?
湖上湖

TA貢獻2003條經(jīng)驗 獲得超2個贊

DTO是用來傳輸數(shù)據(jù)信息的,有些信息其實是我們不希望用戶能夠更改或訪問的,比如用戶密碼,我們不想在用戶看到加密后的密碼時傳遞給前端,或者我們不希望用戶在更改信息時修改密碼,在這個序列化過程中起作用的是setter和getter,以及自動為所有字段生成getter和setter的數(shù)據(jù)注釋。


例如


@Data

class User{


private String userName;


private String pwd;

}

這個類,將有所有的 setter 和 getter。當你轉(zhuǎn)換到網(wǎng)絡時,你會看到


{userName: "123", pwd: "xxx"}

這很糟糕。但是如果你使用 DTO


class User{


private String userName;


private String pwd;


public String getUserName(){

    return userName;

}

}

他們只看到


{userName: "123"}


查看完整回答
反對 回復 2021-07-14
  • 3 回答
  • 0 關注
  • 503 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號