Kommentarer om Spring @Controller og @RestController
1. Oversigt
I denne hurtige vejledning diskuterer vi forskellen mellem @Kontrol og @RestController annoteringer i Spring MVC.
Den første kommentar bruges til traditionelle Spring-controllere og har været en del af rammen i meget lang tid.
Det @RestController annotering blev introduceret i foråret 4.0 for at forenkle oprettelsen af RESTful webtjenester. Det er en komfortkommentar, der kombinerer @Kontrol og @ResponseBody - hvilket eliminerer behovet for at kommentere hver anmodningshåndteringsmetode i controllerklassen med @ResponseBody kommentar.
2. MVC forår @Kontrol
Klassiske controllere kan kommenteres med @Kontrol kommentar. Dette er simpelthen en specialisering af @Komponent klasse og tillader, at implementeringsklasser autodetekteres gennem klassesti-scanning.
@Kontrol bruges typisk i kombination med en @RequestMapping annotering brugt på anmodningshåndteringsmetoder.
Lad os se et hurtigt eksempel på Spring MVC-controller:
@Controller @RequestMapping ("bøger") offentlig klasse SimpleBookController {@GetMapping ("/ {id}", producerer = "applikation / json") offentlig @ResponseBody Book getBook (@PathVariable int id) {return findBookById (id); } privat bog findBookById (int id) {// ...}}
Metoden til anmodningshåndtering er kommenteret med @ResponseBody. Denne kommentar muliggør automatisk serialisering af returobjektet i HttpResponse.
3. Forår MVC @RestController
@RestController er en specialversion af controlleren. Det inkluderer @Kontrol og @ResponseBody annoteringer og som et resultat forenkler controllerens implementering:
@RestController @RequestMapping ("books-rest") offentlig klasse SimpleBookRestController {@GetMapping ("/ {id}", producerer = "applikation / json") offentlig Book getBook (@PathVariable int id) {return findBookById (id); } privat bog findBookById (int id) {// ...}}
Controlleren er kommenteret med @RestController anmærkning, derfor @ResponseBody er ikke påkrævet.
Hver anmodningshåndteringsmetode i controller-klassen serierer automatisk returnerede objekter i HttpResponse.
4. Konklusion
I denne artikel så vi de klassiske og specialiserede REST-controllere, der var tilgængelige i Spring Framework.
Den komplette kildekode til eksemplet er tilgængelig i GitHub-projektet; dette er et Maven-projekt, så det kan importeres og bruges som det er.