最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot如何統(tǒng)一JSON信息返回

 更新時間:2024年08月09日 09:33:53   作者:廣州的程序猿  
這篇文章主要介紹了SpringBoot如何統(tǒng)一JSON信息返回問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot統(tǒng)一JSON信息返回

調(diào)用后端服務(wù)后的返回結(jié)果有多種類型

如:StringInteger,BooleanList,Map等,

在一個項目中,為了保持統(tǒng)一性,我們方法返回結(jié)果可以全部使用JSON數(shù)據(jù)格式

如下:

{
    "code":200,
    "msg":"成功",
    "data":"JSON數(shù)據(jù)"
}

其中code 是本次請求處理結(jié)果對應(yīng)的狀態(tài)碼,msg是狀態(tài)碼對應(yīng)的解釋信息,data是要返回的數(shù)據(jù)內(nèi)容,可以是任意一個對象。

封裝響應(yīng)信息對象

public class ResponseEntity<T> implements Serializable {

    private static final long serialVersionUID = 3595741978061989861L;
    private Integer code;//狀態(tài)碼
    private String msg;//狀態(tài)碼對應(yīng)信息
    private T data;//要返回的數(shù)據(jù)


    public Integer getCode() {
        return code;
    }


    public void setCode(Integer code) {
        this.code = code;
    }


    public String getMsg() {
        return msg;
    }


    public void setMsg(String msg) {
        this.msg = msg;
    }


    public T getData() {
        return data;
    }


    public void setData(T data) {
        this.data = data;
    }
}

狀態(tài)碼,Http請求狀態(tài)碼有多種,使用枚舉列舉

如下示例:

public enum ResponseEnum {

    SUCCESS(200, "成功"),
    FAIL(-1, "失敗"),
    ERROR_400(400, "錯誤的請求"),
    ERROR_404(404, "訪問資源不存在"),
    ERROR_500(500, "服務(wù)器異常");


    private Integer code;
    private String msg;


    ResponseEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }


    public Integer getCode() {
        return code;
    }


    public void setCode(Integer code) {
        this.code = code;
    }


    public String getMsg() {
        return msg;
    }


    public void setMsg(String msg) {
        this.msg = msg;
    }
}

創(chuàng)建一個公共類,生成響應(yīng)對象

public class ResponseUtil {

    /**
     * 成功返回
     * @param object 返回數(shù)據(jù)
     * @return
     */
    public static ResponseEntity success(Object object){
        ResponseEntity resp = new ResponseEntity();
        resp.setCode(ResponseEnum.SUCCESS.getCode());
        resp.setMsg(ResponseEnum.SUCCESS.getMsg());
        resp.setData(object);
        return resp;
    }


    /**
     * 成功返回  無數(shù)據(jù)
     * @return
     */
    public static ResponseEntity success(){
        return success(null);
    }


    /**
     * 失敗返回
     * @param responseEnum 響應(yīng)標(biāo)識
     * @return
     */
    public static ResponseEntity error(ResponseEnum responseEnum){
        ResponseEntity resp = new ResponseEntity();
        resp.setCode(responseEnum.getCode());
        resp.setMsg(responseEnum.getMsg());
        return resp;
    }
}

Spring中的控制器可以用 @Controller@RestController注解來聲明,其中@Controller標(biāo)識當(dāng)前控制器是SpringMvc的控制器,要返回JSON對象數(shù)據(jù),需要和@ResponseBody注解聯(lián)合使用;

@RestController主要用來構(gòu)建Restful風(fēng)格接口,返回客戶端的請求數(shù)據(jù),相當(dāng)于同時使用@Controller@ResponseBody注解。

創(chuàng)建Pojo包及對應(yīng)的實體類

public class DemoEntity {

    private Integer id;
    private String name;


    public Integer getId() {
        return id;
    }


    public void setId(Integer id) {
        this.id = id;
    }


    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }
}

創(chuàng)建控制器

  • @Controller
@Controller
public class DemoController {

    @RequestMapping(value = "/users", method= RequestMethod.GET)
    @ResponseBody
    public ResponseEntity users(){
        List<DemoEntity> list = new ArrayList<DemoEntity>();
        DemoEntity demo = new DemoEntity();
        demo.setId(1);
        demo.setName("蝸牛");
        list.add(demo);
        DemoEntity demo1 = new DemoEntity();
        demo1.setId(2);
        demo1.setName("葡萄");
        list.add(demo1);
        return ResponseUtil.success(list);
    }
}

測試:

啟動服務(wù)后,在瀏覽器地址欄輸入http://localhost:8080/users,可以看到頁面上的輸出信息

{"code":200,"msg":"成功","data":[{"id":1,"name":"蝸牛"},{"id":2,"name":"葡萄"}]}
  • @RestController
@RestController
public class DemoRestController {

    @RequestMapping(value = "/users1", method= RequestMethod.GET)
    public ResponseEntity users(){
        List<DemoEntity> list = new ArrayList<DemoEntity>();
        DemoEntity demo = new DemoEntity();
        demo.setId(1);
        demo.setName("蝸牛");
        list.add(demo);
        DemoEntity demo1 = new DemoEntity();
        demo1.setId(2);
        demo1.setName("葡萄");
        list.add(demo1);
        return ResponseUtil.success(list);
    }
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 搜索一文入門ElasticSearch(節(jié)點 分片 CRUD 倒排索引 分詞)

    搜索一文入門ElasticSearch(節(jié)點 分片 CRUD 倒排索引 分詞)

    這篇文章主要為大家介紹了搜索一文入門ElasticSearch(節(jié)點 分片 CRUD 倒排索引 分詞)的基礎(chǔ)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 使用jvm sandbox對三層嵌套類型的改造示例

    使用jvm sandbox對三層嵌套類型的改造示例

    這篇文章主要為大家介紹了使用jvm sandbox對三層嵌套類型的改造示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • springmvc+shiro自定義過濾器的實現(xiàn)代碼

    springmvc+shiro自定義過濾器的實現(xiàn)代碼

    這篇文章主要介紹了springmvc+shiro自定義過濾器的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • Spring?DI依賴注入過程解析

    Spring?DI依賴注入過程解析

    依賴注入是由“依賴”和“注入”兩個詞匯組合而成,那么我們再一次順藤摸瓜,分別分析這兩個詞語,這篇文章主要介紹了Spring?DI依賴注入詳解,需要的朋友可以參考下
    2022-11-11
  • Java面向?qū)ο蠡A(chǔ)知識之?dāng)?shù)組和鏈表

    Java面向?qū)ο蠡A(chǔ)知識之?dāng)?shù)組和鏈表

    這篇文章主要介紹了Java面向?qū)ο蟮闹當(dāng)?shù)組和鏈表,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-11-11
  • Spring配置文件解析之BeanDefinitionReader詳解

    Spring配置文件解析之BeanDefinitionReader詳解

    這篇文章主要介紹了Spring配置文件解析之BeanDefinitionReader詳解,ApplicationContext.xml配置文件解析成Document對象,真正對xml中元素解析的類是在BeanDefinitionDocumentReader的實現(xiàn)類中來完成的,需要的朋友可以參考下
    2024-02-02
  • Java Session會話追蹤原理深入分析

    Java Session會話追蹤原理深入分析

    web開發(fā)階段我們主要是瀏覽器和服務(wù)器之間來進(jìn)行交互。瀏覽器和服務(wù)器之間的交互就像人和人之間進(jìn)行交流一樣,但是對于機(jī)器來說,在一次請求之間只是會攜帶著本次請求的數(shù)據(jù)的,但是可能多次請求之間是會有聯(lián)系的,所以提供了會話機(jī)制
    2022-11-11
  • java文件操作之Path,Paths,Files

    java文件操作之Path,Paths,Files

    Java7中文件IO發(fā)生了很大的變化,專門引入了很多新的類,下面給大家分享用Files作為一個操作類的實例,需要的朋友可以參考
    2017-04-04
  • Java判斷文件或者文件夾是否存在的功能(不存在創(chuàng)建,存在刪除)

    Java判斷文件或者文件夾是否存在的功能(不存在創(chuàng)建,存在刪除)

    在Java中,要判斷文件或文件夾是否存在,并根據(jù)判斷結(jié)果來執(zhí)行創(chuàng)建或刪除操作,你可以使用java.io.File類或者java.nio.file包中的類,本文介紹Java判斷文件或者文件夾是否存在,不存在創(chuàng)建,存在刪除,感興趣的朋友一起看看吧
    2025-03-03
  • SpringMVC實現(xiàn)Controller的三種方式總結(jié)

    SpringMVC實現(xiàn)Controller的三種方式總結(jié)

    這篇文章主要介紹了SpringMVC實現(xiàn)Controller的三種方式總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論

宁海县| 磐石市| 凯里市| 县级市| 衡阳县| 合江县| 墨竹工卡县| 紫金县| 南召县| 柞水县| 堆龙德庆县| 新营市| 宾川县| 浙江省| 类乌齐县| 阳春市| 泰安市| 建德市| 会泽县| 博乐市| 郯城县| 南安市| 汨罗市| 榆树市| 台江县| 泗阳县| 汾西县| 湘潭市| 兴海县| 濮阳市| 波密县| 闽侯县| 屏边| 运城市| 德安县| 青州市| 新兴县| 荣昌县| 宁强县| 福贡县| 万盛区|