Как я понимаю, RestController предназначен для того, чтоб возвращать данные в JSON формате, а в Controller данные добавляются в Model. затем возвращают View на которой уже можно вытащить через Model эти данные. Суть вопроса в чем - как понять, когда какой Контроллер использовать?
Скорее еще проблема в том, что я не понимаю, как тогда отрисовать данные на View, если мы их предаем через json...
Если кто-то может обьяснить - буду безмерно благодарен!)
Спасибо за внимание!)
@RestController это @Controller + @ResponseBody - пригодится в том случае, если нужно просто вернуть объект, а спринг дальше сам разберется с сериализацией, хидерами и статусом ответа (обычно используют, когда пишут REST API).
@Controller - если нужно возвращать ResponseEntity (пригодится чтобы гибко настраивать статусы и заголовки ответов), объекты SpringMVC или объекты сервлетов.
Хорошо, только вот одного понять не могу...
В каких ситуациях делать Rest API, а в каких случаях второе?
Как я понял, что если делать интернет-магазин (к примеру), то мы не используем @RestController, мы просто в Model добавляем новый атрибут (списко товара) и просто возвращаем страницу...
Верно же?
Или можно возвращать json, а фронт сам будет принимать json и отрисовывать его?)
SpringMVC - это серверный рендеринг. Спринг генерирует из модели (+ jsp/jsf) html страничку.
Если возвращать json - нужно позаботиться чтобы его кто-то принял. В вашем случае фронт должен уметь этот json как-то обработать.