Spring Bean Yaşam Döngüsü – 1 InitializingBean – DisposableBean Nedir?
Spring Framework Dersleri‘ne devam ediyoruz.
Bu yazıda bir Spring Bean’inin yaşam döngüsünden bahsedeceğiz. Bu sayede Spring Framework’ün bir Bean’i nasıl yönettiği, neler yaptığı ve neleri kontrol ettiği hakkında fikir sahibi olacağız.
Spring Framework’ün Yaşam Döngüsüne bir Bean’i oluşturmaya başlamadan ve başlatıldıktan sonra müdahale etmemiz mümkün. Bu müdahaleleri inceleyeceğiz. Bu yazıda bakacağımız kavramlar;
- InitializingBean;
- DisposableBean;
İlk önce bu kavramları açıklayayım sonra bir örnek ile inceleyelim.
InitializingBean
InitializingBean bir Interface’dir. Bu interface afterPropertiesSet() metodu sayesinde beanimiz’de ilk çalışacak metod afterPropertiesSet() metodu olacaktır.
DisposableBean
DisposableBean bir Interface’dir. Bu interfaces destroy() metodu sayesinde son çalışacak metod ise destroy() metodu olacaktır. Olşuturulan tüm beanler yok edilir.
Örnek
import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; public class MesajService implements InitializingBean, DisposableBean { public void afterPropertiesSet() throws Exception { System.out.println("afterPropertiesSet çalıştı"); } public void destroy() throws Exception { System.out.println("destroy çalıştı"); } }
MesajService adında bir bean oluşturduk. Beanimize Initializing Bean, DisposableBean interfacelerini implement ettik. İmplement ettiğimiz interfacelerin metotlarını beanimize override ettik. Override ettiğimiz metotların yukarıda açıkladığımız gibi işlemesini bekliyoruz.
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> </beans>
Spring konfigürasyonumuzu oluşturalım.
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.mkyong.customer.services.CustomerService; public class App { public static void main( String[] args ) { ApplicationContext ctx = new ClassPathXmlApplicationContext("context.xml"); MesajService mjs = (MesajService)context.getBean("mesajService"); System.out.println(mjs); ((ClassPathXmlApplicationContext) ctx).close(); } }
Programımızı çalıştırmak için main metodumuzu yazdık. Çalıştıralım ve sonucuna bakalım.
afterPropertiesSet çalıştı destroy çalıştı
Sonraki yazımızda Spring Bean’nin Yaşam Döngüsüne bakmaya devam edeceğiz. BeanFactoryAware ve BeanNameAware kavramlarından bahsedeceğim.
Önceki Ders: Bean Scope Kullanımı | Spring Dersleri | Sonraki Ders: Spring Bean Yaşam Döngüsü – 2 |
No Comment! Be the first one.