Java EE שעועית הפעלה

1. הקדמה

ניתן לסווג פולי מושבים ארגוניים ל:

  1. שעועית מושב חסרת מדינה
  2. שעועית מושב ממלכתית

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

2. התקנה

לשימוש שעועית ארגונית 3.2, הקפד להוסיף את הגרסה האחרונה ל- תלות החלק של pom.xml קוֹבֶץ:

 javax javaee-api 7.0 מסופק 
את התלות האחרונה ניתן למצוא במאגר Maven. תלות זו מבטיחה כי כל ממשקי ה- API של Java EE 7 זמינים בזמן הקומפילציה. ה בתנאי היקף מבטיח כי לאחר פריסתו; התלות תסופק על ידי המכולה בה נפרס.

3. שעועית חסרת מצב

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

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

3.1 יצירת השעועית חסרת האומה

ראשית, בואו ניצור את חסר מדינה EJB אפונה. אנו משתמשים ב- @ סטטלס ביאור לסימון השעועית כחסרת מדינה:

@Stateless public class StatelessEJB {public String string name; }

ואז אנו יוצרים את הלקוח הראשון של שעועית חסרת המדינה הנ"ל, שנקרא EJBClient1:

מעמד ציבורי EJBClient1 {@EJB ציבור חסר מדינה EJB חסר מדינה EJB; }

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

מחלקה ציבורית EJBClient2 {@EJB ציבור חסר מדינה EJB חסר מדינה EJB; }

3.2 בדיקת שעועית חסרת המדינה

כדי לבדוק את חוסר המדינה של EJB, אנו יכולים להשתמש בשני הלקוחות שהצהרנו לעיל באופן הבא:

@RunWith (Arquillian.class) מעמד ציבורי StatelessEJBTest {@ Inject private EJBClient1 ejbClient1; @ הזריק EJBClient2 פרטי ejbClient2; @Test הציבור בטל שניתןOneStatelessBean_whenStateIsSetInOneBean _secondBeanShouldHaveSameState () {ejbClient1.statelessEJB.name = "לקוח 1"; assertEquals ("לקוח 1", ejbClient1.statelessEJB.name); assertEquals ("לקוח 1", ejbClient2.statelessEJB.name); } @Test הציבור בטל שניתןOneStatelessBean_whenStateIsSetInBothBeans _secondBeanShouldHaveSecondBeanState () {ejbClient1.statelessEJB.name = "לקוח 1"; ejbClient2.statelessEJB.name = "לקוח 2"; assertEquals ("לקוח 2", ejbClient2.statelessEJB.name); } // קוד ההתקנה של Arquillian הוסר לצורך קיצורו}

אנו מתחילים להזרים את שני לקוחות ה- EBJ למבחן היחידה.

ואז, בשיטת הבדיקה הראשונה, הגדרנו את שֵׁם משתנה ב- EJB שהוזרק לתוכנה EJBClient1 לערך לקוח 1. כעת, כאשר אנו משווים את הערך של ה- שֵׁם משתנה בשני הלקוחות, עלינו לראות שהערך שווה. זה מראה שהמצב אינו נשמר בשעועית חסרת מדינה.

בואו נדגים שזה נכון בצורה אחרת. בשיטת הבדיקה השנייה אנו רואים שברגע שקבענו את ה- שֵׁם משתנה בלקוח השני זה 'מחליף' את כל הערך שניתן לו באמצעות ejbClient1.

4. שעועית סטטית

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

4.1 יצירת שעועית הסטטיסטית

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

@ סטטוס ציבורי סטטיסטי StatefulEJB {שם מחרוזת ציבורי; }

הלקוח המקומי הראשון לשעועית הסטטית שלנו כתוב כדלקמן:

מחלקה ציבורית EJBClient1 {@EJB ציבורית StatefulEJB statefulEJB; }

לקוח שני התקשר EJBClient2 נוצר גם כמו EJBClient1:

מחלקה ציבורית EJBClient2 {@EJB ציבורית StatefulEJB statefulEJB; }

4.2 בדיקת שעועית הסטטיסטית

הפונקציונליות של השעועית הממלכתית נבדקת ב EJBStatefulBeanTest בדיקת יחידה באופן הבא:

@RunWith (Arquillian.class) מעמד ציבורי StatefulEJBTest {@ Inject private EJBClient1 ejbClient1; @ הזריק EJBClient2 פרטי ejbClient2; @Test הציבור בטל שניתןOneStatefulBean_whenTwoClientsSetValueOnBean _thenClientStateIsMaintained () {ejbClient1.statefulEJB.name = "לקוח 1"; ejbClient2.statefulEJB.name = "לקוח 2"; assertNotEquals (ejbClient1.statefulEJB.name, ejbClient2.statefulEJB.name); assertEquals ("לקוח 1", ejbClient1.statefulEJB.name); assertEquals ("לקוח 2", ejbClient2.statefulEJB.name); } // קוד ההתקנה של Arquillian הוסר לצורך קיצורו}

כמו קודם מוזרקים שני לקוחות ה- EJB למבחן היחידה. בשיטת הבדיקה אנו יכולים לראות כי הערך של ה- שֵׁם משתנה מוגדר באמצעות ejbClient1 לקוח ומתוחזק למרות שערכו של שֵׁם מוגדר באמצעות ejbClient2 שונה. זה מוכיח שמצבו של ה- EJB נשמר.

5. שעועית ללא מושג לעומת סטטיסטיקה

עכשיו בואו נסתכל על ההבדל העיקרי בין שני סוגי שעועית ההפעלה.

5.1 שעועית חסרת מצב

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

5.2 שעועית סטטטית

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

6. מסקנה

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

כמו תמיד, קוד המקור של המאמר זמין ב- GitHub.


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