我只需要在回復中發送 1 個用 @JsonView(在我的情況下為:eNumber)注釋的欄位。此外,這必須僅當呼叫來自也具有 JsonView 注釋的 Controller1 時。但是,當呼叫來自未使用 @JsonView 注釋的 Controller2 時,也會發送 eNumber 欄位值。我在這里想念什么?
下面是我的代碼:
DTO:
public class MyClass {
@JsonView(Views.InternalRequest.class)
public String getEnumber() {
return eNumber;
}
.... other fields
}
控制器類:
@RequestMapping("/api/ctr")
public class Controller1 {
@GetMapping(value = "/{serviceId}/eva", produces = MediaType.APPLICATION_JSON_VALUE)
@JsonView(Views.InternalRequest.class)
public ResponseEntity<MyClass> findAllEva() {
return ResponseEntity.ok(new MyClass());
}
}
@RequestMapping("/api/abcd")
public class Controller2 {
@GetMapping(value = "/{serviceId}/evss", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<MyClass> findAllEvs() {
return ResponseEntity.ok(new MyClass());
}
}
看法:
public class Views {
public static class InternalRequest {
}
}
uj5u.com熱心網友回復:
我相信您需要執行以下操作:
- 定義兩個視圖;一種用于內部,一種用于公共。
- 注釋欄位而不是吸氣劑(我相信,這一步不是 100% 確定的)。
- 使用“@JsonView(Views.Public.class)”注釋 Controller2 方法
這是一篇描述 JsonViews的 Baeldung 文章
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479461.html
上一篇:Spring依賴關系還是默認值?
下一篇:Bean無法以不確定的方式初始化
