日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

controller通过map返回减少dto类的创建

發布時間:2024/9/30 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 controller通过map返回减少dto类的创建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

更多精彩關注公眾號

不要把實體類對象直接返給前端 ,首先想到的是創建DTO,但是這樣就造成大量的DTO,顯得很臃腫,為了減少dto的數量,像一些比較少的參數避免創建不必要的DTO,通過本次優化達到業務的目的
(VO按數據庫表創建,DTO用于接收或映射Http請求,在BO層將DTO賦值給各個VO)

適不適合 可以看看 這個探討:
使用Map取代VO和DTO是否合理
Java 數據查詢,使用 Map 還是實體類封裝?
使用JavaBean比Map作為參數在性能,維護性方面更好
總結 重點就是代碼維護性(作者不要寫自己, 看誰不順眼寫誰🤣); 性能問題;

原代碼: 創建DTO給前端返值

@PostMapping({"/question/choice"})public ResponseEntity findExercises(@RequestBody @NotEmpty(message = "{exercises.id.NotEmpty.message}") List<String> cmd5s) {List<ChoiceQuestion> contentMd5s = service.findAllByContentMd5In(cmd5s);List<ChoiceRtnDto> repetitions = contentMd5s.stream().map(e -> new ChoiceRtnDto(e.getContentMd5(), e.getTitle(), e.getPid())).collect(Collectors.toList());return ResponseEntity.status(HttpStatus.ALREADY_REPORTED).body(repetitions);}

更改后:

@PostMapping({"/question/choice"})public ResponseEntity findExercises(@RequestBody @NotEmpty(message = "{exercises.id.NotEmpty.message}") List<String> md5List) {List<Map<String, String>> repetitiveQuestions = new ArrayList<>();service.findAllByContentMd5In(md5List).forEach(e -> {Map<String, String> map = new HashMap<>();map.put("md5", e.getContentMd5());map.put("name", e.getTitle());map.put("pid", e.getPid());repetitiveQuestions.add(map);});return ResponseEntity.status(HttpStatus.ALREADY_REPORTED).body(repetitiveQuestions);}

總結

以上是生活随笔為你收集整理的controller通过map返回减少dto类的创建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。