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.