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.


$config[zx-auto] not found$config[zx-overlay] not found