编程爱好者联盟 2016-09-27
在springmvc中 添加对服务器classPath下的json文件解析之后返回的mock功能:
import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @RestController @RequestMapping("/mock") public class MockController { @RequestMapping(value = "/{module}/{action}", method = RequestMethod.POST) public JsonNode mockContent(@PathVariable String module, @PathVariable String action, HttpServletRequest request, HttpServletResponse response) { JsonNode actualObj = null; InputStream fis = null; try { ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader(); URL resURL = ctxLoader.getResource(action + ".json"); URLConnection resConn = resURL.openConnection(); resConn.setUseCaches(false); fis = resConn.getInputStream(); StringBuilder builder = new StringBuilder(); int ch; while ((ch = fis.read()) != -1) { builder.append((char) ch); } ObjectMapper mapper = new ObjectMapper(); actualObj = mapper.readTree(builder.toString()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { } } } return actualObj; } }
相应的也可以增加其他的类型支持,比如string数据, 或者是其他的。由于 springmvc rest接口默认会使用json的转化器,所以需要转化成对应的json格式