הזמנה באביב

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

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

יש לו טיעון ערך אופציונלי הקובע את סדר הרכיב; ערך ברירת המחדל הוא הוזמן.LOWEST_PRECEDENCE. זה מסמן שהרכיב נמצא בעדיפות הנמוכה ביותר מבין כל שאר הרכיבים שהוזמנו.

באופן דומה, הערך הוזמן. HIGHEST_PRECEDENCE יכול לשמש לעקיפת העדיפות הגבוהה ביותר מבין הרכיבים.

2. מתי להשתמש @להזמין

לפני אביב 4.0, @להזמין ההערה שימשה רק לצו הביצוע של AspectJ. המשמעות היא שהייעוץ להזמנה הגבוהה ביותר יופעל תחילה.

מאז אביב 4.0 הוא תומך בהזמנת רכיבים שהוזרקו לאוסף. כתוצאה מכך, אביב תזריק את השעועית האוטומטית מאותו סוג בהתבסס על ערך ההזמנה שלהם.

בואו לחקור את זה עם דוגמה מהירה.

3. כיצד להשתמש @להזמין

קודם כל, בואו נקבע את הפרויקט שלנו עם הממשק והשיעורים הרלוונטיים.

3.1. יצירת ממשק

בואו ניצור את דֵרוּג ממשק הקובע את דירוג המוצר:

דירוג ממשק ציבורי {int getRating (); }

3.2. יצירת רכיבים

לבסוף, בואו ניצור שלושה רכיבים המגדירים את הדירוגים של מוצרים מסוימים:

@Component @Order (1) מחלקה ציבורית ציון יישומים מעולה {@Override public int getRating () {return 1; }} @Component @Order (2) מחלקה ציבורית מימוש טוב דירוג {@Override public int getRating () {return 2; }} מחלקה ציבורית @Component @Order (Order.LOWEST_PRECEDENCE) ממוצע יישומי דירוג {@Override public int getRating () {return 3; }}

שים לב שה- מְמוּצָע בכיתה יש את העדיפות הנמוכה ביותר בגלל הערך העוקף שלה.

4. בחינת הדוגמה שלנו

עד עכשיו יצרנו את כל הרכיבים הנדרשים ואת הממשק לבדיקת ה- @להזמין ביאור. עכשיו, בואו לבדוק את זה כדי לאשר שזה עובד כצפוי:

דרגה ציבורית RatingRetrieverUnitTest {@ דירוגי רשימות פרטיים פרטיים; @Test הציבור בטל givenOrder_whenInjected_thenByOrderValue () {assertThat (ratings.get (0) .getRating (), הוא (שווה ל- (1))); assertThat (ratings.get (1) .getRating (), הוא (שווה ל- (2))); assertThat (ratings.get (2) .getRating (), הוא (שווה ל- (3))); }}

5. מסקנה

למדנו על @להזמין ביאור במאמר מהיר זה. אנו יכולים למצוא את היישום של @להזמין במקרי שימוש שונים - בהם יש חשיבות לסדר הרכיבים האוטומטיים. דוגמה אחת היא מסנני הבקשה של אביב.

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

את כל הדוגמאות המוזכרות במדריך זה ניתן למצוא באתר Github.


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