Spring Bean Lifecycle Nedir? (2026 Detaylı Rehber)

Spring Bean Lifecycle, bir bean’in Spring container tarafından oluşturulmasından yok edilmesine kadar geçen tüm yaşam döngüsünü ifade eder. Bean oluşturma, dependency injection, initialization ve destroy aşamalarını anlamak performanslı ve hatasız Spring uygulamaları için kritik öneme sahiptir.

Kısa özet: Instantiate → Populate → Initialize → Kullanım → Destroy 🚀
Spring Bean Lifecycle aşamaları diyagramı
Spring Bean Lifecycle: Oluşturma, injection, initialization ve destroy adımları.

İlgili İçerikler


İçindekiler

  1. Spring Bean Nedir?
  2. Bean Lifecycle Aşamaları
  3. Initialization ve Destroy Metotları
  4. BeanPostProcessor Nedir?
  5. Örnek Kod
  6. Sık Sorulan Sorular
  7. Sonuç

1) Spring Bean Nedir?

Spring Bean, Spring IoC container tarafından yönetilen bir nesnedir. Bu nesneler genellikle @Component, @Service, @Repository veya @Controller anotasyonlarıyla tanımlanır.

Spring container, bean’leri oluşturur, bağımlılıklarını enjekte eder ve yaşam döngüsünü yönetir.

2) Spring Bean Lifecycle Aşamaları

  1. Instantiation: Bean nesnesi oluşturulur.
  2. Populate Properties: Dependency Injection yapılır.
  3. BeanNameAware / BeanFactoryAware: Aware arayüzleri çağrılır.
  4. BeanPostProcessor (beforeInit)
  5. InitializingBean / @PostConstruct
  6. BeanPostProcessor (afterInit)
  7. Destroy (@PreDestroy)

3) Initialization ve Destroy Aşamaları

@PostConstruct

Bean oluşturulduktan ve dependency injection tamamlandıktan sonra çalışır.

Spring Bean Lifecycle diyagramı

@PostConstruct
public void init() {
    System.out.println("Bean initialized");
}

@PreDestroy

Spring container kapatılırken çalışır.


@PreDestroy
public void destroy() {
    System.out.println("Bean destroyed");
}
Spring Boot Bean Test Code

4) BeanPostProcessor Nedir?

BeanPostProcessor, bean initialization sürecinden önce ve sonra müdahale etmenizi sağlar.


@Component
public class MyBeanPostProcessor implements BeanPostProcessor {

    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) {
        return bean;
    }

    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) {
        return bean;
    }
}
Spring Boot Bean processor code

Sık Sorulan Sorular

Spring Bean lifecycle neden önemlidir?

Performans, kaynak yönetimi ve doğru dependency injection için lifecycle sürecini anlamak gerekir.

@PostConstruct zorunlu mu?

Hayır. Ancak initialization logic için önerilir.

Prototype bean’lerde destroy çalışır mı?

Hayır. Prototype bean’lerin lifecycle yönetimi container tarafından tamamen yapılmaz.

Sonuç

Spring Bean Lifecycle, Spring uygulamalarının temel yapı taşlarından biridir. Instantiate, dependency injection, initialization ve destroy aşamalarını anlamak daha stabil ve ölçeklenebilir uygulamalar geliştirmenizi sağlar.

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Spring Boot ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *