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

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

如何在到達帶有注釋的句柄之前轉換 Requestbody 的字段

如何在到達帶有注釋的句柄之前轉換 Requestbody 的字段

萬千封印 2022-11-02 16:55:55
我需要在 post 方法中對一些有效載荷的主體進行一些更改,以更改大寫或小寫等值。我一直在研究最接近我需要的是 HandlerMethodArgumentResolver@Documented@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface LowerCase {}@Data@Builder@Document@NoArgsConstructor@AllArgsConstructorpublic class Customer extends Model {  @LowerCase  private String email;  @LowerCase  private String username;}@RequestMapping(value = "user", method = RequestMethod.POST)ResponseEntity<Customer> test(@RequestBody @Valid Customer payload) {  System.out.println(payload);  return ResponseEntity.ok(payload);}如果我發(fā)送這個{  "email": "MYMAIL@GMAIL.COM",  "username": "JIBARRA"}需要這個的結果{  "email": "mymail@gmail.com",  "username": "jibarra"}謝謝
查看完整描述

3 回答

?
慕斯王

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

@Data

@Builder

@Document

@NoArgsConstructor

@AllArgsConstructor

public class Customer extends Model {


  @JsonDeserialize(using = ToLowerCaseDeserializer.class)

  private String email;


  @JsonDeserialize(using = ToLowerCaseDeserializer.class)

  private String username;

}

在 ToLowerCaseDeserializer.java 中實現(xiàn)將傳入文本轉換為小寫的邏輯


public class ToLowerCaseDeserializer extends StdDeserializer<String> {


    private static final long serialVersionUID = 7527542687158493910L;


    public ToLowerCaseDeserializer() {

        super(String.class);

    }


    @Override

    public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {

        return _parseString(p, ctxt).toLowerCase();

    }


}


查看完整回答
反對 回復 2022-11-02
?
慕妹3146593

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

您可以使用 Spring消息轉換器對請求正文進行更改,為Json 轉換器(將JSON轉換為對象)定義一個自定義轉換器,并像下面一樣為 spring-boot 添加它。

要編寫消息轉換器,請擴展 Spring AbstractHttpMessageConverter(用于新的自定義轉換器),并覆蓋三個方法 readInternal()、writeInternal() 和 supports() 。

Spring 使用 HttpMessageConverters 來呈現(xiàn) @ResponseBody(或來自 @RestController 的響應)。您可以通過在 Spring Boot 上下文中添加適當類型的 bean 來貢獻其他轉換器。如果您添加的 bean 屬于默認情況下會包含的類型(例如用于 JSON 轉換的 MappingJackson2HttpMessageConverter),它將替換默認值。提供了一個 HttpMessageConverters 類型的便利 bean,如果您使用默認 MVC 配置,它始終可用。它有一些有用的方法來訪問默認的和用戶增強的消息轉換器(例如,如果你想手動將它們注入到自定義的 RestTemplate 中,它會很有用)。

@Configuration

public class MyConfiguration {

@Bean

public HttpMessageConverters customConverters() {

    HttpMessageConverter<?> additional = ...

    HttpMessageConverter<?> another = ...

    return new HttpMessageConverters(additional, another);

}


}


查看完整回答
反對 回復 2022-11-02
?
HUH函數(shù)

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

只需在控制器中執(zhí)行即可。我不認為消息轉換器是轉換數(shù)據(jù)的地方

轉換案例意味著某種業(yè)務約束或規(guī)則。因此,我認為您希望在控制器的代碼中明確地發(fā)生這種情況,而不是注釋的某些屬性。然后,如果需求發(fā)生變化(因為它們總是如此),你知道在哪里以及如何改變它。


查看完整回答
反對 回復 2022-11-02
  • 3 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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