天天看點

Java 後端實作Mock功能傳回JSON檔案

前後端分離的項目中,類似行政區選擇,前端控件一般擷取全部資料進行渲染,如果這些資料每次都查詢資料庫開銷會很大。

其實方法有很多種,1直接放前端項目中 2使用nginx代理 3Java渲染JSON檔案

相對來說第三種方法對我們後端來說容易維護,主要方法如下:

/**
     * 讀取json格式檔案
     * @param jsonSrc
     * @return
     */
    private String readJson(String jsonSrc) {
        String json = "";
        try {
            //File jsonFile = ResourceUtils.getFile(jsonSrc);
            //json = FileUtils.re.readFileToString(jsonFile);
            //換個寫法,解決springboot讀取jar包中檔案的問題
            InputStream stream = getClass().getClassLoader().getResourceAsStream(jsonSrc.replace("classpath:", ""));
            json = IOUtils.toString(stream);
        } catch (IOException e) {
            log.error(e.getMessage(),e);
        }
        return json;
    }           

然後Controller直接調用readJson方法得到JSON檔案的内容渲染出去

/**
     * 省市縣
     */
    @GetMapping(value = "/getArea")
    public String area() {
        return readJson("classpath:com/mxthd/demo/mock/json/area.json");
    }