Sobes.tech
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.