התקשרות חוזרת באביב

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

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

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

2. גישות כיבוי להתקשרות

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

  • @ PreDestroy
  • חד פעמי מִמְשָׁק
  • שיטת השמדת שעועית
  • גלוֹבָּלִי ServletContextListener

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

2.1. באמצעות @ PreDestroy

בואו ליצור שעועית שמשתמשת בה @ PreDestroy:

@Component class class Bean1 {@PreDestroy public void destroy () {System.out.println ("החזרת Callback מופעלת - @PreDestroy."); }}

במהלך אתחול השעועית, Spring ירשום את כל שיטות השעועית שמסומנות עליהן @ PreDestroy ומזמין אותם כאשר היישום נסגר.

2.2. משתמש ב חד פעמי מִמְשָׁק

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

@Component מחלקה ציבורית Bean2 מיישמת את DisposableBean {@Override public void destroy () זורק Exception {System.out.println ("קריאה מופעלת - DisposableBean."); }}

2.3. הכרזה על שיטת השמדת שעועית

לגישה זו, ראשית ניצור מחלקה בשיטת הרס בהתאמה אישית:

מחלקה ציבורית Bean3 {public void destroy () {System.out.println ("קריאה מופעלת - שיטת השמדת שעועית."); }}

לאחר מכן, אנו יוצרים את מחלקת התצורה שמאתחלת את השעועית ומסמנת אותה להרוס() שיטה כשיחה החזרת הכיבוי שלנו:

@Configuration מחלקה ציבורית ShutdownHookConfiguration {@Bean (destroyMethod = "להשמיד") Public Bean3 initializeBean3 () {להחזיר Bean3 חדש (); }}

דרך ה- XML ​​לרישום שיטת ההרס היא:

2.4. שימוש גלובלי ServletContextListener

בשונה משלוש הגישות האחרות, שרושמות את ההחזרה ברמת שעועית, ה ServletContextListener רושמת את השיחה החוזרת ברמת ההקשר.

לשם כך בואו ליצור מאזין הקשר מותאם אישית:

מחלקה ציבורית ExampleServletContextListener מיישמת את ServletContextListener {@Override public void contextDestroyed (ServletContextEvent event) {System.out.println ("קריאה מופעלת - ContextListener."); } @Override public void contextInitialized (אירוע ServletContextEvent) {// מפעיל כשאתחול ההקשר}}

עלינו לרשום את זה ל- ServletListenerRegistrationBean בכיתת התצורה:

@Bean ServletListenerRegistrationBean servletListener () {ServletListenerRegistrationBean srb = ServletListenerRegistrationBean חדש (); srb.setListener (דוגמא חדשהServletContextListener ()); להחזיר srb; }

3. מסקנה

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

אלה יכולים לשמש לכיבוי היישום בחינניות וביעילות לפינוי המשאבים המשמשים.

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


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