Merknadene om våren @kontrolleren og @restkontrolleren

1. Oversikt

I denne raske opplæringen vil vi diskutere forskjellen mellom @Kontrollør og @RestController merknader i Spring MVC.

Den første merknaden brukes for tradisjonelle vårkontrollere og har vært en del av rammeverket i veldig lang tid.

De @RestController kommentar ble introdusert våren 4.0 for å forenkle etableringen av RESTful web-tjenester. Det er en bekvemmelighetsnotering som kombinerer @Kontrollør og @ResponseBody - som eliminerer behovet for å kommentere hver metode for forespørselhåndtering i kontrollerklassen med @ResponseBody kommentar.

2. Vår-MVC @Kontrollør

Klassiske kontrollere kan merkes med @Kontrollør kommentar. Dette er rett og slett en spesialisering av @Komponent klasse og lar implementeringsklasser autodetekteres gjennom skanning av klassestien.

@Kontrollør brukes vanligvis i kombinasjon med en @RequestMapping kommentar brukt på behandlingsmetoder for forespørsel.

La oss se et raskt eksempel på Spring MVC-kontrolleren:

@Controller @RequestMapping ("books") offentlig klasse SimpleBookController {@GetMapping ("/ {id}", produserer = "applikasjon / json") offentlig @ResponseBody Book getBook (@PathVariable int id) {return findBookById (id); } private Book findBookById (int id) {// ...}} 

Forespørselshåndteringsmetoden er merket med @ResponseBody. Denne kommentaren muliggjør automatisk serialisering av returobjektet i HttpResponse.

3. Vår-MVC @RestController

@RestController er en spesialversjon av kontrolleren. Den inkluderer @Kontrollør og @ResponseBody merknader og som et resultat forenkler implementeringen av kontrolleren:

@RestController @RequestMapping ("books-rest") offentlig klasse SimpleBookRestController {@GetMapping ("/ {id}", produserer = "applikasjon / json") offentlig Book getBook (@PathVariable int id) {return findBookById (id); } private Book findBookById (int id) {// ...}} 

Kontrolleren er merket med @RestController kommentar, derfor @ResponseBody er ikke nødvendig.

Hver metode for forespørselhåndtering av kontrollerklassen serierer returobjekter automatisk i HttpResponse.

4. Konklusjon

I denne artikkelen så vi de klassiske og spesialiserte REST-kontrollerne som er tilgjengelige i Spring Framework.

Den komplette kildekoden for eksemplet er tilgjengelig i GitHub-prosjektet; dette er et Maven-prosjekt, så det kan importeres og brukes som det er.


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