精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

三年中国国语在线播放免费| 亚洲中国色老太| 少妇毛片一区二区三区| 中文字幕成在线观看| 91亚洲国产成人精品一区二三| 青青草一区二区| 萌白酱视频在线| 第一区第二区在线| 色狠狠桃花综合| 欧洲精品视频在线| 日本一本草久在线中文| 日本成人在线一区| 欧美激情视频三区| 欧美一区二区三区粗大| 中文字幕视频精品一区二区三区| 欧美日韩在线观看视频| www.午夜色| 黄色小视频在线观看| 国产精品18久久久| 国产精品久久久久久久久久三级| 久久黄色免费视频| 日韩理论在线| 日韩精品在线观看一区| 在线播放黄色av| 欧美三区四区| 午夜亚洲福利老司机| 亚洲色图都市激情| av免费在线一区二区三区| 99久久精品费精品国产一区二区| 国产精品一区久久久| 亚洲第一精品在线观看| 国内在线观看一区二区三区| 日韩视频在线免费| 日本黄色小视频在线观看| 国产精品色呦| 精品久久久三级丝袜| 男女污污视频网站| 国产一区二区三区四区五区3d| 懂色aⅴ精品一区二区三区蜜月| www婷婷av久久久影片| 日韩专区在线| 国产精品三级电影| 日韩三级在线播放| 日韩精品123| 99精品国产视频| 国产乱码精品一区二区三区不卡| www.久久综合| 国产精品91xxx| 亚洲www在线| 国产免费高清av| 国产资源在线一区| 91免费在线视频网站| 国产精品久久影视| 国内精品第一页| 亚洲影院污污.| 国产偷拍一区二区| 国产丶欧美丶日本不卡视频| 91中文字精品一区二区| 精品黑人一区二区三区在线观看| 国内国产精品久久| 古典武侠综合av第一页| 涩涩视频免费看| www.视频一区| 久久亚洲免费| 成人高潮成人免费观看| 国产精品色哟哟网站| 中文字幕人成一区| av在线免费网站| 亚洲福利国产精品| 久草精品在线播放| 中韩乱幕日产无线码一区| 欧美日韩精品欧美日韩精品一 | 久久精品久久综合| 国产色婷婷国产综合在线理论片a| 中文字幕有码视频| 国产一本一道久久香蕉| 国产精品美女诱惑| 日本激情一区二区| 久久亚洲二区三区| 一区二区三区我不卡| v片在线观看| 亚洲va在线va天堂| 天天天干夜夜夜操| 国产精品一区二区美女视频免费看 | 人人妻人人澡人人爽久久av| 91免费观看视频在线| 亚洲视频小说| 精品日韩av| 在线观看视频一区| 女人扒开双腿让男人捅| 亚洲精品亚洲人成在线| 久久久999成人| 久草视频在线观| 美女国产一区二区三区| 国产高清在线精品一区二区三区| 日本午夜在线视频| 亚洲精品一二三| 东京热加勒比无码少妇| 精品国产三级| 亚洲欧美日韩爽爽影院| 中文字幕亚洲欧美日韩| 亚洲欧美日本日韩| 97久久精品午夜一区二区| 久久电影中文字幕| 亚洲一区在线观看视频| av无码精品一区二区三区| 欧州一区二区三区| 国产一区二区三区在线观看视频 | 国产真人真事毛片视频| 今天的高清视频免费播放成人| 国产成人精品免高潮在线观看| 国产ts变态重口人妖hd| 国产三级精品在线| 国产v片免费观看| 国产精选久久| 中日韩午夜理伦电影免费| 日韩免费av片| 国产最新精品精品你懂的| 蜜桃导航-精品导航| 女同一区二区免费aⅴ| 欧美裸体bbwbbwbbw| 成人乱码一区二区三区av| 伊人成人在线视频| 91aaaa| 国产美女av在线| 91成人网在线| 五级黄高潮片90分钟视频| 国产精品黄色| 91视频免费在线| 中文字幕日本在线观看| 在线观看日韩一区| 91精品人妻一区二区三区蜜桃欧美| 欧美三区视频| 亚洲最大成人免费视频| 色视频在线免费观看| 欧美日韩在线播放三区四区| 中文字幕在线观看的网站| 亚洲黄色av| 国产伦理一区二区三区| 黄色大片在线| 精品少妇一区二区| 欧美黄片一区二区三区| 国产精品综合av一区二区国产馆| 亚洲毛片aa| 欧美激情三区| 日韩在线精品一区| 一本色道久久综合熟妇| 国产精品视频观看| 在线能看的av网站| 天天做综合网| 亚洲自拍高清视频网站| 50度灰在线| 精品久久一区二区| 中日韩黄色大片| 久久只精品国产| 超碰影院在线观看| 欧美综合一区| 成人精品在线观看| 羞羞视频在线免费国产| 精品少妇一区二区三区视频免付费| 激情综合五月网| 成人免费视频视频| 国产自产在线视频| 亚洲va久久| 国产精品国产三级国产aⅴ9色| www.视频在线.com| 7777精品伊人久久久大香线蕉经典版下载 | 成人有码在线播放| 青青草视频在线免费直播| 精品国产乱子伦一区| 国产高潮久久久| 国产欧美一区二区三区沐欲| a在线观看免费视频| 中国精品18videos性欧美| 99久久自偷自偷国产精品不卡| 美女日批视频在线观看| 国产午夜精品麻豆| 在线观看不卡的av| 亚洲综合区在线| 中文字幕一区二区三区人妻电影| 久久国产夜色精品鲁鲁99| 黄色一级片国产| 免费欧美视频| 亚洲自拍小视频| 成人欧美magnet| 久久久成人的性感天堂| 黄色三级网站在线观看| 在线观看网站黄不卡| 久久黄色免费视频| 欧美国产欧美亚州国产日韩mv天天看完整| 天堂av在线8| 亚洲高清av| 在线观看成人av电影| 国产三级精品三级在线观看国产| 国产精品电影一区| 精品日韩av| 最新国产精品拍自在线播放 | 成人妖精视频yjsp地址| 爆乳熟妇一区二区三区霸乳| 你懂的国产精品| 日韩wuma| 欧美丝袜足交| 91在线观看免费高清完整版在线观看 | xx欧美撒尿嘘撒尿xx| 亚洲国产精品第一区二区| 亚洲免费精品视频| 女同另类激情重口| 亚洲一区二区中文| 国产一区二区三区朝在线观看| 久久久久久成人| 日本不卡在线| 国产亚洲欧美一区| 无码国产精品一区二区免费16 | 国产精品免费看久久久香蕉| bl在线肉h视频大尺度| 久久久国产一区二区三区| 欧美zozo| 日韩经典第一页| 国精品人妻无码一区二区三区喝尿| 欧美视频在线观看一区| 午夜毛片在线观看| 亚洲一区二区三区四区在线 | 亚洲成人av电影| 中文字幕av免费在线观看| 国产精品进线69影院| 久久久久久久久久久久| 99re成人精品视频| 91传媒理伦片在线观看| 国产精品中文字幕日韩精品| 深夜黄色小视频| 奇米影视7777精品一区二区| 成人观看免费完整观看| 亚洲黄色高清| 欧美黑人经典片免费观看| 欧美三级不卡| 久久亚洲国产成人精品无码区| 欧美不卡高清| 视色,视色影院,视色影库,视色网| 色婷婷色综合| 亚洲精品中文字幕乱码三区不卡| 国产麻豆精品久久| 欧美自拍资源在线| 亚洲制服一区| 欧美一区1区三区3区公司| 综合国产视频| 欧美一区二区三区在线免费观看| 在线看成人短视频| 青娱乐一区二区| 精品产国自在拍| 亚洲第一综合| 天天天综合网| 无码毛片aaa在线| 欧美日韩国产精品一区二区亚洲| 亚洲啊啊啊啊啊| 黄色欧美成人| 国产中文字幕视频在线观看| 亚洲永久免费精品| aa免费在线观看| 免费的成人av| 99中文字幕在线| 国产成人av福利| 国产激情视频网站| 久久精品视频免费观看| 一级特黄曰皮片视频| 亚洲欧洲国产专区| 欧美精品99久久久| 婷婷中文字幕综合| 波多野结衣啪啪| 欧美午夜电影网| www.午夜激情| 国产婷婷成人久久av免费高清| 韩国福利在线| 久久成年人免费电影| xxxx在线视频| 国产精品日韩电影| 日韩在线观看中文字幕| 久久久久久久免费| 日韩成人影院| 日本中文字幕亚洲| 日韩—二三区免费观看av| 三区视频在线观看| av在线播放不卡| 最新日韩免费视频| 亚洲亚洲人成综合网络| 国产精品第六页| 日韩精品一区二区三区视频播放| 亚洲人午夜射精精品日韩| 中文欧美在线视频| 黑人玩欧美人三根一起进| 国产精品久久婷婷六月丁香| 日韩欧美另类中文字幕| 欧美一区观看| 影音先锋久久| 日韩欧美国产片| 成人精品在线视频观看| 四虎成人免费影院| 亚洲五码中文字幕| 在线观看国产黄| 精品亚洲一区二区三区四区五区 | 国内精品久久久久久久影视简单 | 日本美女黄色一级片| 精品久久久一区| av网站在线免费看| 国产亚洲精品久久久| 人妖欧美1区| 国产精品久久久久久av下载红粉| 中文字幕av一区二区三区四区| 先锋影音日韩| 亚洲免费婷婷| 在线xxxxx| 亚洲欧美日韩精品久久久久| 日本视频免费观看| 亚洲护士老师的毛茸茸最新章节| 黄色动漫在线| 国产精品视频网站| 最近国产精品视频| a级免费在线观看| 狠狠色丁香久久婷婷综| 黄色av免费播放| 色哟哟精品一区| 桃花色综合影院| 国内精品小视频在线观看| 高清一区二区三区av| 亚洲精品一品区二品区三品区| 国产日韩一区| 精品熟女一区二区三区| 亚洲激情一二三区| 国产精品无码白浆高潮| 色妞欧美日韩在线| 中文.日本.精品| 天天综合狠狠精品| 久久国产精品亚洲77777| 欧美xxxxx精品| 亚洲已满18点击进入久久| 99国产成人精品| 久久精品影视伊人网| 四虎地址8848精品| 伊人久久99| 韩国成人福利片在线播放| 成人做爰视频网站| 欧美色爱综合网| 日本中文字幕在线观看| 成人妇女免费播放久久久| 欧美r级电影| 青青草原国产在线视频| 国产精品乱人伦一区二区| 中文字幕乱码视频| 日韩中文字幕在线观看| 亚洲视频资源| 最新av网址在线观看| 国产精一品亚洲二区在线视频| 国产一区二区播放| 日韩一区二区中文字幕| 亚洲综合影视| 国产在线一区二| 天使萌一区二区三区免费观看| 国产熟妇搡bbbb搡bbbb| 欧美综合一区二区| 欧美三级电影一区二区三区| 成人免费观看a| 一区在线观看| 日本少妇xxxxx| 欧美精品第一页| 女人黄色免费在线观看| 另类小说综合网| 日韩av一二三| 婷婷色中文字幕| 亚洲精品videossex少妇| 亚洲精品在线影院| 一区二区视频在线观看| 成人美女视频在线观看18| 日韩美一区二区| 久久九九热免费视频| y111111国产精品久久久| 久久9精品区-无套内射无码| 欧美色女视频| 欧美一级黄色网| 久久狠狠久久| 五月婷婷之综合激情| 一区二区三区四区国产精品| 亚洲欧洲国产综合| 成人亲热视频网站| 99精品国产在热久久下载| 99久久99久久精品免费看小说.| 91精品国产丝袜白色高跟鞋| 免费看男女www网站入口在线| 日韩av高清| 成人成人成人在线视频| 中文字幕日产av| 高清欧美电影在线| 日韩国产欧美| 色综合久久五月| 欧美日韩免费在线视频| 91破解版在线观看| 亚洲午夜精品一区二区| 成人午夜电影久久影院| 中文字幕在线观看1| 97香蕉超级碰碰久久免费软件| 久久免费av| 香蕉视频黄色在线观看|