精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

太強了!Spring Boot 3.4 的 @JsonView 注解,讓接口返回靈活到飛起!

開發 前端
在 Spring Boot 3.4 的加持下,搭配 Jackson 的 @JsonView,你可以優雅地應對各種接口返回需求,真正實現“靈活到飛起”的數據控制!?

在實際開發中,前后端分離的系統通常會用 JSON 來傳遞數據。但不同行為場景下,前端所需的數據范圍是不同的。舉個例子,產品列表只需要展示商品的基本信息,如商品名、價格等;而商品詳情頁就得展示完整信息,比如庫存、供應商、采購價等等。

傳統做法是定義多個 DTO 分別應對不同的展示需求,但這樣做容易產生大量重復代碼,維護起來也會相當頭疼。

幸好,Spring Boot 提供了對 Jackson 的 @JsonView 注解的支持,它就像一個靈活的“數據可見性開關”——可以幫我們按需返回不同的數據字段,既保持了數據結構統一,又能減輕維護負擔。

原理淺析

@JsonView 來源于 Jackson,它的工作方式非常巧妙:

  1. 定義幾個“視圖接口”(通常是空接口)。
  2. 在實體類的字段上用 @JsonView 標明字段在哪些視圖中可見。
  3. 控制器里用 @JsonView(View.class) 指定序列化用哪個視圖。

這樣就可以根據場景有選擇性地返回數據字段。

實戰演練:用 @JsonView 玩轉返回字段

我們以一個商品 Product 實體作為例子進行講解。

定義實體類

package com.icoderoad.model;


import com.fasterxml.jackson.annotation.JsonView;


public class Product {


    // 定義視圖接口
    public interface BasicInfo {}
    public interface DetailedInfo extends BasicInfo {}


    @JsonView(BasicInfo.class)
    private Long id;


    @JsonView(BasicInfo.class)
    private String name;


    @JsonView(BasicInfo.class)
    private Double price;


    @JsonView(DetailedInfo.class)
    private Integer stock;


    @JsonView(DetailedInfo.class)
    private String supplier;


    @JsonView(BasicInfo.class)
    private String category;


    // 構造函數
    public Product(Long id, String name, Double price, Integer stock, String supplier, String category) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.stock = stock;
        this.supplier = supplier;
        this.category = category;
    }


    // getter & setter 省略
}

控制器用法示例

package com.icoderoad.controller;


import com.fasterxml.jackson.annotation.JsonView;
import com.icoderoad.model.Product;
import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/products")
public class ProductController {


    // 只返回基礎信息
    @JsonView(Product.BasicInfo.class)
    @GetMapping("/basic")
    public Product getBasicProduct() {
        return new Product(1L, "iPhone 15", 8999.0, 200, "Apple", "Electronics");
    }


    // 返回所有字段
    @JsonView(Product.DetailedInfo.class)
    @GetMapping("/detail")
    public Product getDetailedProduct() {
        return new Product(1L, "iPhone 15", 8999.0, 200, "Apple", "Electronics");
    }
}

不同接口就像不同“窗口”,只展示自己該展示的數據。

編程式控制返回字段

如果你希望動態指定視圖而不是用注解,也可以用 MappingJacksonValue:

@GetMapping("/dynamic")
public MappingJacksonValue dynamicView() {
    Product product = new Product(1L, "iPhone 15", 8999.0, 200, "Apple", "Electronics");
    MappingJacksonValue wrapper = new MappingJacksonValue(product);
    wrapper.setSerializationView(Product.BasicInfo.class);
    return wrapper;
}

配合 Thymeleaf 或 MVC 頁面展示

你也可以在 MVC 頁面中返回 JSON 數據,并用視圖控制字段:

@Controller
public class ProductViewController {


    @GetMapping("/product/view")
    public ModelAndView viewProduct(Model model) {
        Product product = new Product(1L, "iPhone 15", 8999.0, 200, "Apple", "Electronics");
        model.addAttribute("product", product);
        model.addAttribute(JsonView.class.getName(), Product.BasicInfo.class);
        return new ModelAndView(new MappingJackson2JsonView());
    }
}

這里的關鍵點是:把 JsonView 的類全限定名作為 key 放入 model 中,然后使用 Jackson 的 JSON View 進行渲染。

控制反序列化(限制字段反解析)

@JsonView 不僅可以控制輸出,也可以限制 JSON 字段的反序列化行為:

@PostMapping("/deserialize")
publicProductdeserialize(@RequestBodyString json)throwsException{
    ObjectMapper mapper =newObjectMapper();
    return mapper
            .readerWithView(Product.BasicInfo.class)
            .forType(Product.class)
            .readValue(json);
}

像上面的代碼,如果 JSON 中包含 supplier 或 stock,也不會被反序列化出來。

設置默認行為(全量輸出未注解字段)

默認情況下,未打 @JsonView 注解的字段不會被返回。

不過,我們可以通過如下配置調整:

spring:
  jackson:
    mapper:
      default-view-inclusion: true

如果你加上這個配置,就算某個字段沒有標注 @JsonView,也會被默認輸出(前提是你仍然在接口上標了某個視圖)。

總結

@JsonView 是一個非常強大而靈活的工具,特別適合處理字段輸出差異化需求:

  • 不需要定義多個冗余 DTO;
  • 數據結構統一,維護性高;
  • 支持注解和編程式兩種方式;
  • 輸出、反序列化都可以控制;
  • 配合 MVC 視圖同樣適用!

在 Spring Boot 3.4 的加持下,搭配 Jackson 的 @JsonView,你可以優雅地應對各種接口返回需求,真正實現“靈活到飛起”的數據控制!

責任編輯:武曉燕 來源: 路條編程
相關推薦

2025-01-13 13:47:13

2025-08-07 09:30:57

2025-05-14 01:00:00

Spring工具工廠類

2025-04-08 02:22:22

SpringJackson注解

2025-03-26 08:28:36

2025-04-08 01:00:00

Spring開發系統

2025-07-02 08:00:00

防抖SpringBoot開發

2025-04-10 00:22:22

Spring@JsonView字段

2025-01-22 14:02:35

2025-11-03 06:25:26

SpringJSONJackson

2025-07-14 02:00:00

2025-06-09 01:22:00

2025-09-01 02:00:00

2022-05-30 16:31:08

CSS

2025-02-08 08:00:00

JavaDeepSeekIDEA

2025-03-13 00:25:00

SpringJava瀏覽器

2025-04-02 04:55:00

2021-03-04 09:31:42

開源技術 項目

2025-07-15 04:00:00

Spring配置參數

2025-07-07 02:15:00

Spring吞吐量JVM
點贊
收藏

51CTO技術棧公眾號

国产不卡一区二区在线播放| 亚洲激情在线观看视频免费| 7777在线视频| 亚洲奶汁xxxx哺乳期| 亚洲日本激情| 中文国产亚洲喷潮| 古装做爰无遮挡三级聊斋艳谭| 久久99亚洲网美利坚合众国| 久久人人爽爽爽人久久久| 国产啪精品视频| 国产一二三四在线| 国产探花在线精品| 日韩欧美一级在线播放| 欧美韩国日本在线| 黄色av电影在线观看| 91在线视频观看| 91在线视频导航| 精品人妻一区二区色欲产成人| 欧美激情另类| 日韩精品999| 久久婷婷中文字幕| 日韩欧美另类一区二区| 一区二区久久久| 亚洲一区二区不卡视频| 色窝窝无码一区二区三区成人网站| 日产国产欧美视频一区精品| 午夜精品在线观看| 国产成人av免费在线观看| 天天躁日日躁狠狠躁欧美| 在线成人av网站| 日本成人中文字幕在线| 国产蜜臀一区二区打屁股调教| 国产精品成人免费| 久久久久久久免费| www.日日夜夜| 狠狠色丁香婷婷综合| 88xx成人精品| www.99re7.com| 亚洲国产一区二区三区在线播放| 伊人一区二区三区久久精品| 精品人妻少妇嫩草av无码| 超碰成人在线免费| 欧美一级二级三级乱码| 欧美国产日韩另类 | 亚洲欧美在线aaa| 欧美一区免费视频| 日本v片在线免费观看| av在线不卡网| 国产欧美日韩综合精品二区| www.香蕉视频| 国产精品99久久久久久有的能看| 国产在线久久久| 中文字幕人妻一区二区在线视频| 首页国产欧美日韩丝袜| 欧美综合一区第一页| 国产做受高潮漫动| 亚洲精品系列| 欧美一级大片在线观看| 99热国产在线观看| 一本色道久久精品| 538国产精品一区二区免费视频 | 成人羞羞国产免费| 91久久精品无码一区二区| 另类调教123区| 成人福利网站在线观看| 国产免费高清av| 国产精品一区二区久久精品爱涩 | 精品国产99久久久久久宅男i| 精品一区二区三区免费播放| 91丨九色丨国产在线| 精品国产av一区二区| 成人激情av网| 麻豆精品蜜桃一区二区三区| 国产在线电影| 国产精品视频一区二区三区不卡| 一区二区在线不卡| 性欧美猛交videos| 精品久久久国产| 天天操天天爽天天射| 亚洲一区二区三区久久久| 欧美一级电影网站| 国产精品嫩草av| 欧美精品一区二区三区中文字幕 | 精灵使的剑舞无删减版在线观看| 亚洲国产精品久久久男人的天堂| 激情综合在线观看| 国产精品99久久久久久董美香 | 国产成人精品电影久久久| 久久精品偷拍视频| 国精产品一区一区三区mba视频| 97视频资源在线观看| 日批视频在线播放| 国产香蕉久久精品综合网| 中文字幕一区二区三区精彩视频| 日本动漫理论片在线观看网站| 欧美日韩精品在线播放| 手机av在线网| 欧美自拍视频| 久久精品91久久久久久再现| 日本a在线观看| 麻豆精品国产传媒mv男同| 国产精品久久波多野结衣| 国产在线黄色| 亚洲成人动漫精品| 国产又大又黄又粗又爽| 国产成人精品亚洲线观看| 亚洲一区二区久久| 久久久久久久黄色| 久久成人免费电影| 免费日韩电影在线观看| av网址在线看| 日本韩国视频一区二区| 日批视频免费看| 成人看的视频| 91精品国产免费久久久久久 | 日日骚一区二区网站| 男插女视频久久久| 欧美日韩极品在线观看一区| 国产偷人妻精品一区| 91精品电影| 日韩免费精品视频| 国产综合视频在线| 亚洲欧洲一区二区在线播放| 成人在线看视频| 激情小说亚洲色图| 欧美精品中文字幕一区| 在线观看毛片网站| 久久精品一区二区三区av| 日本香蕉视频在线观看| 成人在线视频国产| 中文字幕国产日韩| 91玉足脚交嫩脚丫在线播放| 成人av高清在线| 人妻激情另类乱人伦人妻| 四虎影视成人精品国库在线观看| 亚洲色图第一页| 日韩欧美亚洲视频| 国产成a人亚洲精品| 伊人久久婷婷色综合98网| 日韩另类视频| 亚洲亚裔videos黑人hd| 国产原创视频在线| 2020国产成人综合网| 欧美不卡在线播放| 国产成人精品福利| 午夜精品久久17c| 国产成人手机在线| 亚洲国产精品自拍| 在线精品视频播放| 一区久久精品| 国产欧美日韩在线播放| yellow字幕网在线| 亚洲激情在线观看| 丰满少妇xoxoxo视频| 久久女同精品一区二区| 三级4级全黄60分钟| 亚洲精品无吗| 国产精品成久久久久三级| 国产中文字幕在线看| 欧美亚男人的天堂| 日日碰狠狠添天天爽| 激情小说亚洲一区| 亚洲色婷婷久久精品av蜜桃| 国产精品17p| 2019中文字幕免费视频| 日本高清中文字幕二区在线| 色综合久久久久网| 日本午夜精品视频| 国产一区视频导航| 和岳每晚弄的高潮嗷嗷叫视频| 麻豆成人入口| 国产精品99免视看9| 日韩伦理在线电影| 精品播放一区二区| 国产又粗又爽视频| 国产精品久久久久久久第一福利 | caoporn国产| 国产欧美精品一区aⅴ影院| 邪恶网站在线观看| 欧美激情视频一区二区三区免费| 国精产品99永久一区一区| 欧美黄色网页| 久久精品国产久精国产思思| 蜜桃视频在线观看www| 色欧美乱欧美15图片| 亚洲天堂一级片| www.亚洲人| 亚洲欧美自拍另类日韩| 欧美激情日韩| 日韩电影在线播放| 成人在线视频国产| 欧美在线视频一区二区| 麻豆网站在线看| 亚洲精品日韩丝袜精品| 91精品人妻一区二区三区果冻| 亚洲成人精品影院| 911国产在线| 99精品视频在线免费观看| 亚洲最大成人在线观看| 黑人一区二区| 一区二区日本伦理| 欧美尿孔扩张虐视频| 国产免费成人av| aa国产成人| 久久亚洲成人精品| 牛牛热在线视频| 欧美不卡一区二区三区四区| aaaaaa毛片| 一区二区三区色| 成人小视频免费看| 91欧美激情一区二区三区成人| 日本中文字幕影院| 久久精品日产第一区二区| 2022中文字幕| 97视频精品| 欧美一进一出视频| 加勒比久久高清| 91视频免费网站| 91成人在线| 欧美最猛性xxxxx免费| 青草在线视频| 久久亚洲精品成人| 在线观看免费黄视频| 亚洲欧美日韩国产成人| 欧美熟妇另类久久久久久不卡| 欧美精品黑人性xxxx| 精品久久久久久久久久久久久久久久久久 | 欧美亚洲综合色| 日韩精品一区二区在线播放| 亚洲精品免费播放| 99久久久免费精品| 欧美激情在线看| 中文字幕一二三四区| 99久久er热在这里只有精品15| 日本黄色三级网站| 国产综合色视频| 天天看片天天操| 青青青爽久久午夜综合久久午夜| 国产女女做受ⅹxx高潮| 99在线热播精品免费99热| 日韩视频在线视频| 激情欧美一区| 日韩精品视频在线观看视频| 黄色av日韩| 精品少妇人欧美激情在线观看| 中文字幕一区二区三区久久网站| 最新精品视频| 无需播放器亚洲| 一级一片免费播放| 亚洲成人国产| 欧美日韩dvd| 国语精品一区| av在线播放亚洲| 国产精品入口| 国产精品无码专区av在线播放| 99成人免费视频| 久久国产乱子伦免费精品| 老牛嫩草一区二区三区日本 | 久久99最新地址| 一道本视频在线观看| 久久精品av麻豆的观看方式| 欧美成人乱码一二三四区免费| 激情综合网天天干| 香蕉视频色在线观看| 国产福利91精品| 在线观看成人动漫| 91色porny蝌蚪| 国精产品一区一区| 亚洲欧美另类小说| 国产一级特黄a高潮片| 欧美日韩日本国产| 正在播放木下凛凛xv99| 欧美电影一区二区三区| 亚洲精品视频91| 亚洲欧美另类在线观看| 欧美性猛交xxx乱大交3蜜桃| 欧美肥老妇视频| 韩国精品一区| 国产精品自拍视频| 超碰精品在线观看| 日本一区网站| 91成人看片| 干日本少妇首页| 精品无人区卡一卡二卡三乱码免费卡| 男男受被啪到高潮自述| 久久伊99综合婷婷久久伊| 欧美性x x x| 调教+趴+乳夹+国产+精品| 亚洲 小说区 图片区| 日韩美女一区二区三区| 日本国产在线| 欧美猛交ⅹxxx乱大交视频| 在线黄色的网站| 91香蕉国产在线观看| 日韩精品丝袜美腿| 欧美aaa在线观看| 午夜一级在线看亚洲| 青娱乐国产精品视频| 26uuu亚洲综合色| 免费国产羞羞网站美图| 精品久久久久久国产| 国产又粗又猛又黄| 亚洲精品一区二区三区福利| 福利在线视频导航| 性欧美亚洲xxxx乳在线观看| 欧美v亚洲v综合v国产v仙踪林| 国产一区二区三区奇米久涩| 天天av综合| 看欧美ab黄色大片视频免费| 成年人网站91| 国产美女福利视频| 91黄色免费版| 午夜成人免费影院| 久久躁狠狠躁夜夜爽| 韩国精品主播一区二区在线观看| http;//www.99re视频| 久久综合国产| 日韩有码免费视频| www.一区二区| 国产在线拍揄自揄拍| 日韩一区二区三| 日本综合在线| 国产精品国产亚洲伊人久久 | 亚洲国产日韩美| 免播放器亚洲| 三级男人添奶爽爽爽视频 | 成人毛片18女人毛片| 精品噜噜噜噜久久久久久久久试看| 午夜免费播放观看在线视频| 日韩女在线观看| 亚洲黄页网站| 免费成人在线视频网站| 成人黄页在线观看| 久久综合加勒比| 日韩欧美你懂的| 在线欧美三级| 亚洲xxxx在线| 欧美影院一区| 亚洲一区二区图片| ...av二区三区久久精品| 91精品国产乱码久久久| 日韩在线www| 天天综合91| 伊人天天久久大香线蕉av色| 麻豆成人免费电影| 亚洲色图100p| 制服丝袜av成人在线看| 久久99精品久久| 2019国产精品视频| 欧美日韩一区自拍| 丰满人妻一区二区三区大胸| 亚洲综合久久久久| 老牛影视av牛牛影视av| 久久久久久久久久久成人| 国产丝袜一区| 国产在线青青草| 日本一区二区免费在线| 最近中文字幕在线视频| 色噜噜亚洲精品中文字幕| 四虎影视成人精品国库在线观看| 懂色av一区二区三区四区五区| 国产乱人伦偷精品视频不卡| 妺妺窝人体色www在线下载| 精品国产乱码久久久久久免费 | 欧美wwwww| 国内av一区二区| 亚洲综合一二区| 香港一级纯黄大片| 国产精品av免费在线观看| 国产精品毛片一区二区在线看| 少妇极品熟妇人妻无码| 午夜久久久久久久久| 可以在线观看的av| 国产精品私拍pans大尺度在线| 一区二区国产在线| 丰满少妇xbxb毛片日本| 在线免费一区三区| 黄色片网站在线| 久久精品日产第一区二区三区精品版| 久久一区国产| 亚洲熟女毛茸茸| 亚洲黄色av女优在线观看| 色8久久影院午夜场| 亚洲自拍偷拍一区二区三区| 国产91精品露脸国语对白| 日韩一级在线视频| 欧美成aaa人片免费看| 日韩av不卡一区| 亚洲另类第一页| 午夜亚洲福利老司机| h视频网站在线观看| 国产91免费视频| 日本不卡中文字幕| 久久久久久久久久久网| 国产亚洲精品久久久久久| 一区二区日韩| 污版视频在线观看| 午夜精品免费在线观看| 免费av在线网站| 免费av在线一区二区|