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.
İlgili İçerikler
İçindekiler
- Spring Bean Nedir?
- Bean Lifecycle Aşamaları
- Initialization ve Destroy Metotları
- BeanPostProcessor Nedir?
- Örnek Kod
- Sık Sorulan Sorular
- 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ı
- Instantiation: Bean nesnesi oluşturulur.
- Populate Properties: Dependency Injection yapılır.
- BeanNameAware / BeanFactoryAware: Aware arayüzleri çağrılır.
- BeanPostProcessor (beforeInit)
- InitializingBean / @PostConstruct
- BeanPostProcessor (afterInit)
- Destroy (@PreDestroy)
3) Initialization ve Destroy Aşamaları
@PostConstruct
Bean oluşturulduktan ve dependency injection tamamlandıktan sonra çalışır.
@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");
}
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;
}
}
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.