Junior — Middle
Koja je razlika između anotacija @Controller i @RestController u Spring-u?
sobes.tech АИ
Одговор од АИ
Аннотация @Controller в Spring используется для обозначения класса как контроллера в MVC-приложении. Методы такого контроллера обычно возвращают имя представления (view), которое будет отрендерено.
Аннотация @RestController — это специализированный вариант @Controller, которая автоматически добавляет аннотацию @ResponseBody ко всем методам класса. Это значит, что методы возвращают данные (обычно в формате JSON или XML) напрямую в тело HTTP-ответа, а не имя представления.
Пример:
@RestController
public class MyRestController {
@GetMapping("/api/data")
public MyData getData() {
return new MyData("value"); // будет сериализовано в JSON
}
}
@Controller
public class MyController {
@GetMapping("/page")
public String getPage() {
return "pageView"; // имя шаблона для рендеринга
}
}