将这两种方法转换为一种方法的最佳方法是什么?
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<String> dbStatus() {
return statusService.isDbAlive() ? RESPONSE_DB_UP : RESPONSE_DB_DOWN;
}
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<String> appStatus() throws IOException {
return statusService.isAppAlive() ? RESPONSE_APP_UP : RESPONSE_APP_DOWN;
}
我可以返回List
ResponseEntity<String>
吗?
答案 0 :(得分:1)
您必须返回类似JSON的内容,以显示两项检查的结果。例如
{"isAppAlive" : true, "isDbAlive": false}
您可以自己构建此JSON字符串
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<String> getStatus() throws IOException {
String json = "{\"isAppAlive\":" + statusService.isAppAlive() + ",\"isDbAlive\""+ statusService.isDbAlive() +"}";
return new ResponseEntity<String>(json, HttpStatus.OK);
}
或者建立一个像
这样的类public class Status {
// use private and getters/setters
public boolean isAppAlive;
public boolean isDbAlive;
}
让Spring序列化您创建的Status
对象
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<Status> getStatus() throws IOException {
Status status = new Status();
status.isAppAlive = statusService.isAppAlive();
status.isDbAlive = statusService.isDbAlive();
return new ResponseEntity<Status>(status, HttpStatus.OK);
}
您始终可以statusService
使用方法getStatus()
返回已经设置了字段的Status
对象。
然后,您的客户端可以解析JSON并检查每个状态。
答案 1 :(得分:0)
@RequestMapping(value = "/testurl",
method = { RequestMethod.GET, RequestMethod.POST })
public ModelAndView dbStatus() {
List<String> status = new ArrayList<String>();
status.add (statusService.isDbAlive() );
status.add (statusService.isAppAlive() );
ModelMap modelMap = new ModelMap();
modelMap.put("status ", status );
return new ModelAndView("statuspage.jsp", modelMap);
}