Anotácie Spring @Controller a @RestController
1. Prehľad
V tomto rýchlom návode si povieme o rozdieloch medzi @ Kontrolór a @RestController anotácie v jarnom MVC.
Prvá anotácia sa používa pre tradičné regulátory Spring a je súčasťou rámca už veľmi dlho.
The @RestController na jar 4.0 bola zavedená anotácia s cieľom zjednodušiť vytváranie webových služieb RESTful. Je to pohodlná anotácia, ktorá sa spája @ Kontrolór a @ResponseBody - čo eliminuje potrebu anotovať každú metódu vybavovania požiadaviek triedy radičov pomocou @ResponseBody anotácia.
2. Jarná MVC @ Kontrolór
Klasické ovládače možno označiť poznámkou @ Kontrolór anotácia. Toto je jednoducho špecializácia na @ Komponent triedy a umožňuje automatické zisťovanie implementačných tried prostredníctvom skenovania triedy.
@ Kontrolór sa obvykle používa v kombinácii s a @RequestMapping anotácia použitá pri metódach vybavovania požiadaviek.
Pozrime sa na rýchly príklad radiča Spring MVC:
@Controller @RequestMapping ("knihy") verejná trieda SimpleBookController {@GetMapping ("/ {id}", produce = "application / json") public @ResponseBody Book getBook (@PathVariable int id) {return findBookById (id); } súkromná kniha findBookById (int id) {// ...}}
Metóda spracovania požiadavky je anotovaná pomocou @ResponseBody. Táto anotácia umožňuje automatickú serializáciu návratového objektu do súboru HttpResponse.
3. Jarná MVC @RestController
@RestController je špecializovaná verzia ovládača. Zahŕňa @ Kontrolór a @ResponseBody anotácií a vo výsledku zjednodušuje implementáciu radiča:
@RestController @RequestMapping ("books-rest") verejná trieda SimpleBookRestController {@GetMapping ("/ {id}", produce = "application / json") verejná kniha getBook (@PathVariable int id) {return findBookById (id); } súkromná kniha findBookById (int id) {// ...}}
Ovládač je označený poznámkou @RestController anotácia, preto @ResponseBody sa nevyžaduje.
Každá metóda spracovania požiadavky triedy radiča automaticky serializuje návratové objekty do HttpResponse.
4. Záver
V tomto článku sme videli klasické a špecializované radiče REST dostupné v jarnom rámci.
Celý zdrojový kód príkladu je k dispozícii v projekte GitHub; toto je projekt Maven, takže ho možno importovať a použiť tak, ako je.