הערות האביב @ Controller ו- @ RestController

1. סקירה כללית

במדריך מהיר זה נדון בהבדל בין @בקר ו @ RestController ביאורים ב- MVC באביב.

ההערה הראשונה משמשת לבקרי אביב מסורתיים והייתה חלק מהמסגרת במשך זמן רב מאוד.

ה @ RestController ההערה הוצגה באביב 4.0 כדי לפשט את היצירה של שירותי רשת RESTful. זו הערת נוחות שמשלבת @בקר ו @ResponseBody - מה שמבטל את הצורך להוסיף הערות לכל שיטת טיפול בבקשות במחלקת הבקר עם ה- @ResponseBody ביאור.

2. אביב MVC @בקר

בקרים קלאסיים ניתנים להערה באמצעות ה- @בקר ביאור. זו פשוט התמחות של @רְכִיב בכיתה ומאפשר זיהוי אוטומטי של שיעורי יישום באמצעות סריקת שביל הכיתה.

@בקר משמש בדרך כלל בשילוב עם @ בקשת מיפוי הערה המשמשת בשיטות טיפול בבקשות.

בואו נראה דוגמה מהירה לבקר MVC באביב:

@Controller @RequestMapping ("ספרים") מחלקה ציבורית SimpleBookController {@GetMapping ("/ {id}", מייצר = "יישום / json") ציבורי @ResponseBody Book getBook (@PathVariable int id) {return findBookById (id); } ספר פרטי findBookById (מזהה int) {// ...}} 

שיטת הטיפול בבקשות מסומנת עם @ResponseBody. הערה זו מאפשרת סידור אוטומטי של אובייקט ההחזרה אל ה- HttpResponse.

3. אביב MVC @ RestController

@ RestController היא גרסה מיוחדת של הבקר. זה כולל את @בקר ו @ResponseBody הערות וכתוצאה מכך מפשט את יישום הבקר:

@RestController @RequestMapping ("ספר מנוחה") מחלקה ציבורית SimpleBookRestController {@GetMapping ("/ {id}", מייצר = "יישום / json") ציבורי ספר Book getBook (@PathVariable int id) {return findBookById (id); } ספר פרטי findBookById (מזהה int) {// ...}} 

הבקר מסומן עם ה- @ RestController ביאור, לכן @ResponseBody אינו נדרש.

כל שיטת טיפול בבקשות ממחלקת הבקר מסדרת אוטומטית אובייקטים חוזרים לסידרה HttpResponse.

4. מסקנה

במאמר זה ראינו את בקרי ה- REST הקלאסיים והמיוחדים הזמינים ב- Spring Framework.

קוד המקור השלם לדוגמא זמין בפרויקט GitHub; זהו פרויקט Maven, כך שניתן לייבא אותו ולהשתמש בו כמות שהוא.