מדריך למעיין BeanFactory

1. הקדמה

מאמר זה יתמקד ב בוחן את ה- API של Spring BeanFactory.

ממשק BeanFactory מספק מנגנון תצורה פשוט אך גמיש לניהול אובייקטים מכל סוג שהוא באמצעות מיכל ה- Spring IoC. בואו נסתכל על כמה יסודות לפני שנצלול עמוק לתוך ה- API המרכזי של אביב.

2. יסודות - שעועית ומכולות

במילים פשוטות, שעועית הם אובייקטים של Java אשר מהווים את עמוד השדרה של יישום Spring ומנוהלים על ידי מיכל ה- IOC של Spring. פרט לניהולו על ידי המכולה, אין שום דבר מיוחד בשעועית (מכל הבחינות האחרות זה אחד מחפצים רבים ביישום).

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

3. תלות Maven

בואו נוסיף את התלות הנדרשת של Maven ל- pom.xml קוֹבֶץ. נשתמש בתלות של שעועית אביב כדי להקים את BeanFactory:

 org.springframework שעועית קפיץ 5.2.8.RELEASE 

4. ה BeanFactory מִמְשָׁק

מעניין להתחיל להסתכל על הגדרת הממשק ב org.springframework.beans.factory חבילה ונדון בכמה ממשקי ה- API החשובים שלה כאן.

4.1. ה getBean () ממשקי API

גרסאות שונות של getBean () השיטה מחזירה מופע של השעועית שצוינה, שעשויה להיות משותפת או בלתי תלויה ברחבי היישום.

4.2. ה containBean () ממשק API

שיטה זו מאשרת אם מפעל שעועית זה מכיל שעועית עם השם הנתון. באופן ספציפי יותר, זה מאשר אם getBean (java.lang.String) מסוגל להשיג מופע שעועית עם השם הנתון.

4.3. ה isSingleton () ממשק API

ה isSingleton ניתן להשתמש ב- API לשאילתה אם שעועית זו היא סינגלטון משותף. זה אם getBean (java.lang.String) תמיד יחזיר את אותו מופע.

4.4. ה isPrototype () ממשק API

ממשק API זה יאשר אם getBean (java.lang.String) מחזירה מופעים עצמאיים - כלומר שעועית מוגדרת עם היקף האב-טיפוס, או לא.

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

עלינו להשתמש ב- isSingleton (java.lang.String) פעולה לבדיקה מפורשת של מופע סינגלטון משותף.

4.5. ממשקי API אחרים

בזמן ש isTypeMatch (שם מחרוזת, סוג יעד מחלקה) השיטה בודקת אם השעועית עם השם הנתון תואמת את הסוג שצוין, getType (שם מחרוזת) שימושי בזיהוי סוג השעועית עם השם הנתון.

סוף כל סוף, getAliases (שם מחרוזת) להחזיר את הכינויים לשם השעועית הנתונה, אם יש.

5. BeanFactory ממשק API

BeanFactory מחזיקה בהגדרות שעועית ומייצרת אותן בכל פעם שמתבקש על ידי יישום הלקוח - מה שאומר:

  • הוא מטפל במחזור החיים של שעועית על ידי יישורו וקריאת שיטות הרס מתאימות
  • הוא מסוגל ליצור אסוציאציות בין אובייקט תלוי תוך יישורו
  • חשוב לציין זאת BeanFactory אינו תומך בהזרקת תלות המבוססת על ביאור ואילו ApplicationContext, סופר-סט של BeanFactory עושה

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

6. הגדרת השעועית

בואו נגדיר שעועית פשוטה:

שכבה ציבורית עובד {שם מחרוזת פרטי; גיל פרטי פרטי; // קונסטרוקציות סטנדרטיות, קבוצות וקובעות}

7. הגדרת התצורה של BeanFactory עם XML

אנחנו יכולים להגדיר את BeanFactory עם XML. בואו ניצור קובץ שעועית מפעל- example.xml:

שים לב שיצרנו גם כינוי עבור ה- עוֹבֵד אפונה.

8. BeanFactory עם ClassPathResource

ClassPathResource שייך ל org.springframework.core.io חֲבִילָה. בואו נבצע בדיקה מהירה ונתחל XmlBeanFactory באמצעות ClassPathResource כפי שמוצג מטה:

מחלקה ציבורית BeanFactoryWithClassPathResourceTest {@Test public void createBeanFactoryAndCheckEmployeeBean () {Resource res = new ClassPathResource ("beanfactory-example.xml"); מפעל BeanFactory = XmlBeanFactory חדש (res); עובד עובד = (עובד) factory.getBean ("עובד"); assertTrue (factory.isSingleton ("עובד")); assertTrue (factory.getBean ("עובד") של עובד); assertTrue (factory.isTypeMatch ("עובד", שכיר עובד)); assertTrue (factory.getAliases ("עובד"). אורך> 0); }}

9. מסקנה

במאמר מהיר זה למדנו על השיטות העיקריות אביב BeanFactory API מציע ודוגמה להמחשת התצורה והשימוש בה.

הקוד התומך בדוגמאות אלה זמין ב- GitHub.