2013-08-29 3 views
0

Каков наилучший способ преобразования этих двух методов в один?Объедините два метода в один

@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

Объясните, что вы пытаетесь сделать. Вышеуказанные ошибки будут вызывать ошибки при инициализации. «Список >' не является типом возврата, поддерживаемым по умолчанию, и не имеет смысла, если вы понимаете, что такое 'ResponseEntity'. –

+0

Я пытаюсь проверить состояние db и app из класса StatusService и возвращать статусы обоих, предпочтительно как 'ResponseEntity '. Я хочу только один '@RequestMapping (method = RequestMethod.GET)' вместо двух. – invictvs1

ответ

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; 
} 

и пусть весна сериализации 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 и проверить каждый статус.

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); 

    } 
+0

Было бы неплохо, если бы мы могли хотя бы сказать, какой элемент в списке соответствует статусу. –

+0

Да, вы правы – Prabhakaran

Смежные вопросы