Junior — Middle
Kādi ir galvenie atšķirības starp anotācijām @RestController un @Controller Spring?
sobes.tech AI
Atbilde no AI
@Controller anotācija tiek izmantota, lai definētu kontrolieri Spring MVC, kas parasti atgriež skata (view) nosaukumu HTML lapas renderēšanai. Savukārt @RestController ir specializēta anotācija, kas apvieno @Controller un @ResponseBody. Tas nozīmē, ka klases ar @RestController metodes pēc noklusējuma atgriež datus (piemēram, JSON vai XML), nevis skata nosaukumu.
Piemērs:
@RestController
public class MyRestController {
@GetMapping("/data")
public MyData getData() {
return new MyData("value"); // Atgriež JSON
}
}
@Controller
public class MyController {
@GetMapping("/page")
public String getPage() {
return "pageView"; // Atgriež skata nosaukumu renderēšanai
}
}
Tādēļ, @RestController ir noderīgs REST API izveidei, bet @Controller – servera puses renderētas tīmekļa lietojumprogrammām.