@Component לעומת @Repository ו- @Service באביב

1. הקדמה

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

2. הערות אביב

ברוב היישומים האופייניים, יש לנו רבדים ברורים כמו גישה לנתונים, מצגת, שירות, עסקים וכו '.

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

לאחר מכן הוא רושם כל שעועית ב ApplicationContext.

הנה סקירה מהירה של כמה מההערות האלה:

  • @רְכִיב הוא סטריאוטיפ כללי לכל רכיב המנוהל על ידי אביב
  • @שֵׁרוּת מבטא שיעורים בשכבת השירות
  • מאגר @ מבטא מחלקות בשכבת ההתמדה, שתשמש כמאגר מסדי נתונים

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

3. מה שונה?

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

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

3.1. @רְכִיב

אנו יכולים להשתמש ב- @ Component בכל היישום כדי לסמן את השעועית כרכיבים המנוהלים של Spring. האביב רק מרים ורושם שעועית עם @רְכִיב ולא מחפש @שֵׁרוּת ו מאגר @ בכללי.

הם רשומים ב ApplicationContext כי הם עצמם מוסברים עם @רְכִיב:

שירות @Component ציבורי @ רכיב {} 
@ מאגר ציבורי @ ממשק ציבורי {} 

@שֵׁרוּת ו מאגר @ הם מקרים מיוחדים של @רְכִיב. הם מבחינה טכנית זהים אך אנו משתמשים בהם למטרות שונות.

3.2. מאגר @

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

עבור האביב הזה מספק PersistenceExceptionTranslationPostProcessor, הדורש להוסיף בהקשר היישום שלנו:

מעבד פוסט שעועית זה מוסיף יועץ לכל שעועית שמאושרת איתה מאגר @.

3.3. @שֵׁרוּת

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

4. מסקנה

במכתב זה למדנו על ההבדלים בין @ Component, @ מאגר, @ Service ביאורים. בחנו כל הערה בנפרד עם אזורי השימוש בהם.

לסיכום, תמיד כדאי לבחור את ההערה על סמך מוסכמות השכבה שלהם.