1. 程式人生 > 其它 >【JavaWeb】如何越過SpringMVC直接返回內容

【JavaWeb】如何越過SpringMVC直接返回內容

 

來自前同事問的一個問題,因為專案裡面的SpringMVC會封裝好一個固定的JSON響應規範:

可以看見,data屬性下面,又會有一層data,

資料的消費方提出要求,只需要裡面data的資料,外面的JSON規範不需要發過來

 

說實話我也不太清楚每個專案是怎麼配置這個響應JSON的,

可能有個攔截器,在某一個jar包裡面配置好了,你也不太可能取改JAR包來實現

所以相對簡單的辦法是採取最原生的JavaWeb的響應API來實現

 

一般專案會提供一個BaseController,寫Web介面會要求你直接繼承這個類,也可以不繼承

@RestController
@RequestMapping(
"${sys.path}/room/service") public class EServiceController extends BaseController

我這個專案的類的內容就這些:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package cn.ymcd.comm.base;

import cn.ymcd.comm.base.log.LogFactory;
import cn.ymcd.comm.base.log.YmcdLogger;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; public abstract class BaseController { protected YmcdLogger _logger = LogFactory.getLogger(this.getClass()); @Autowired protected HttpServletRequest request; @Autowired protected HttpServletResponse response;
public BaseController() { } }

根據類的成員可以看出來,提供了一個日誌列印

請求物件和響應物件,要越過配置好的JSON規範,可以直接使用這個響應物件進行字元輸出

如果不繼承這個類也很簡單,直接在自己的Controller類裡面配置就好了

    @Autowired
    protected HttpServletResponse response;

 

然後使用Response的Writer寫String資料即可,JSON資料可以由Fastjson轉換

https://www.cnblogs.com/shuilangyizu/p/9750428.html