【JavaWeb】如何越過SpringMVC直接返回內容
阿新 • • 發佈:2022-03-16
來自前同事問的一個問題,因為專案裡面的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