Spring Bean Yaşam Döngüsü – 1 InitializingBean – DisposableBean Nedir?

Spring Core
Spring Dersleri

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

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Burak KUTBAY 2010 - 2019
%d blogcu bunu beğendi: