亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringMVC使用JsonView針對統(tǒng)一實體返回不同信息

 更新時間:2022年03月23日 14:18:19   作者:KimZing  
這篇文章主要為大家介紹了SpringMVC使用JsonView針對統(tǒng)一實體返回不同信息,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

一、隨便說說

項目中不同的接口需要返回不同的信息,而信息一般通過不同的對象實例去承載。例如有接口A和接口B,A需要返回不包含用戶地址的用戶信息,
而B需要返回包含用戶地址的用戶信息,其它信息和A的返回信息一致。

這個時候應該建立兩個不同的用戶類,一個包含address,一個不包含,這樣做顯然是麻煩的,那么JsonView就可以幫你很優(yōu)雅的解決這個問題。

接下來就直接開始擼代碼了。

二、User信息載體類

public class UserDTO {
    //不顯示地址
    public interface CommonView {}
    //顯示地址
    public interface AdminView extends commonView {}
    @JsonView(value = CommonView.class)
    private String username;
    @JsonView(value = AdminView.class )
    private String address;
    //Getter Setter ...
}

1.接口是public的

2.在類中寫兩個內部接口,分別標志不同的返回屬性。接口是可以相互繼承的,例如AdminView繼承了CommonView,那么相當于AdminView包含了commonView標記的屬性。

    CommonView --> username

    AdminView |--> password
              |--> CommonView --> username

三、UserController的寫法

在需要返回不同視圖的方法上加上@JsonView注解,注解中的value屬性填寫我們在UserDTO中定義的代表不同標記的接口類即可。

@RestController
@RequestMapping(value = "/user")
public class UserController {
    /**
     * 返回普通視圖,不帶地址
     * @return
     */
    @GetMapping(value = "/common")
    @JsonView(value = UserDTO.CommonView.class)
    public UserDTO getCommonView() {
        return new UserDTO("kingboy", "北京");
    }
    /**
     * 返回管理員視圖,顯示地址
     * @return
     */
    @GetMapping(value = "/admin")
    @JsonView(value = UserDTO.AdminView.class)
    public UserDTO getAdminView() {
        return new UserDTO("kingboy", "北京");
    }
}

訪問localhost:8080/user/common返回

{
"username": "kingboy"
}

訪問lcoalhost:8080/user/admin返回

{
"username": "kingboy",
"address": "北京"
}

以上就是SpringMVC使用JsonView針對統(tǒng)一實體返回不同信息的詳細內容,更多關于SpringMVC JsonView統(tǒng)一實體不同信息返回的資料請關注腳本之家其它相關文章!

相關文章

最新評論