چرخه حیات Bean ها – Spring MVC

تا حدودی با Spring و تنظیمات آن آشنا شدیم ، همچنین دیدیم که Bean ها اصلی ترین جز آن هستند ، در این آموزش به صورت مختصر با چرخه حیات Bean ها آشنا می شویم.

یک Bean  در طول حیات خود ساخته شده ، استفاده می شود و سپس از بین رفته و از حافظه پاک می شود. به صورت کلی چرخه حیات یک Bean را می توان به صورت زیر نمایش داد :

bean%20life%20cycle%201

در میان متد های مختلفی از جمله setBeanName  و setBeanFactory و setApplicationContext و غیره فراخوانی می شوند که در این آموزش به آن ها نمی پردازیم.

آنچه در پشت صحنه چرخه حیات یک Bean و در قلب فریم ورک Spring اتفاق می افتد کمی پیچیده است و نیازی نداریم تا در ابتدای کار با تمام جزئیات آن آشنا شویم.در این آموزش فقط دو قسمت مهم از چرخه حیات Bean را بررسی می کنیم  :

  • init
  • destroy

init :

این مرحله درست بعد از ایجاد شدن Bean رخ می دهد ، می توانیم در این مرحله صفات و مقادیر خاصی را به Bean نسبت دهیم. برای انجام عمل init راه حل های مختلفی در پیش رو داریم.

۱٫ استفاده از InitializingBean :

InitializingBean یک interface است که متد afterPropertiesSet را در اختیار ما قرار می دهد و می توانیم در آن عمل init را انجام دهیم.

 

۲٫ استفاده از init-method در فایل xml

اگر از xml برای تنظیم و پیکره بندی استفاده کنیم می توانیم با استفاده از صفت init-method نام یک متد از نوع void و بدون پارامتر ورودی را مشخص کنیم که عمل init در آن انجام شود.

 

۳٫ استفاده از PostConstruct@

متدی که با این Annotation مشخص شود بعد از سازنده فراخوانی می شود.

 

destroy:

این مرحله قبل از از بین رفتن Bean رخ می دهد و در آن می توانیم تنظمیات خاصی را انجام دهیم .

همانند مرحله init این مرحله را نیز می توانیم به سه طریق کنترل کنیم :

۱٫استفاده از DisposableBean

DisposableBean یک interface است که متد destroy را در اختیار ما قرار می دهد و می توانیم در آن عملیات دلخواهمان را انجام دهیم.

 

۲٫استفاده از destroy-method در فایل xml

در صورتی که از فایل xml برای پیکره بندی استفاده کنیم می توانیم از صفت destroy-method استفاده کنیم .

۳٫استفاده از PreDestroy@

 

چرخه حیات در عمل :

بهتر است در عمل با چرخه حیات Bean ها آشنا شویم .

مانند آموزش های قبل یک پروژه جدید مبتنی بر Spring ایجاد می کنیم.

یک کلاس جدید  به نام MyBean به صورت زیر ایجاد می کنیم :

فایل myConfig.xml را به صورت زیر ایجاد می کنیم :

کلاس Main را به صورت زیر ایجاد می کنیم :

برنامه را اجرا می کنیم ، خروجی به صورت زیر خواهد بود

این بار کلاس MyBean را به صورت زیر تغییر می دهیم :

فایل myConfig.xml را نیز به صورت زیر تغییر می دهیم :

برنامه را اجرا می کنیم ، خروجی به صورت زیر خواهد بود :

حالت ترکیبی ، این بار به صورت ترکیبی انجام می دهیم تا تقدم afterPropertiesSet و destroy را درک کنیم .

فایل MyBean را به صورت زیر تغییر می دهیم :

برنامه را اجرا می کنیم ، خروجی به صورت زیر خواهد بود :

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *