Junior — Middle
Quais são as principais diferenças entre as anotações @RestController e @Controller no Spring?
sobes.tech IA
Resposta da IA
A anotação @Controller é usada para definir um controlador no Spring MVC, que normalmente retorna o nome da vista para renderizar uma página HTML. Enquanto isso, @RestController é uma anotação especializada que combina @Controller e @ResponseBody. Isso significa que os métodos numa classe com @RestController retornam por padrão dados (por exemplo, JSON ou XML), e não o nome da vista.
Exemplo:
@RestController
public class MyRestController {
@GetMapping("/data")
public MyData getData() {
return new MyData("value"); // Retorna JSON
}
}
@Controller
public class MyController {
@GetMapping("/page")
public String getPage() {
return "pageView"; // Retorna o nome da view para renderizar
}
}
Assim, @RestController é útil para criar APIs REST, enquanto @Controller é usado para aplicações web com renderização no servidor.