Spring uygulamasında Application Context ayağa kalkerken sırayla hangi beanler oluşturulur, hangi sınıfların hangi metotları çalıştırılır?

Spring uygulamasında Application Context ayağa kalkerken sırayla hangi beanler oluşturulur, hangi sınıfların hangi metotları çalıştırılır?

Spring Framework'te, uygulama bağlamı (Application Context) başlatılırken izlenen adımlar ve oluşturulan bean'ler genellikle uygulamanızın yapılandırmasına bağlıdır. Ancak, Spring'in başlatma sürecinde genel olarak izlediği bazı temel adımlar vardır. İşte bir Spring uygulamasında Application Context ayağa kalkarken sırayla gerçekleşen işlemler:


ApplicationContext Oluşturulması: Spring, belirtilen yapılandırma sınıfı/sınıfları veya XML dosyası/dosyaları temelinde bir ApplicationContext oluşturur. Bu, Spring'in temel container'ıdır ve bean'lerin yönetimi, yaşam döngüsü ve bağımlılıklarının enjekte edilmesi gibi işlemleri gerçekleştirir.


Bean Tanımlarının Yüklenmesi: Spring, belirtilen yapılandırma içindeki bean tanımlarını yükler. Bu, @Configuration sınıflarındaki @Bean anotasyonuyla tanımlanmış metotları veya XML yapılandırma dosyalarındaki <bean> elementlerini içerebilir.


Bean Bağımlılıklarının Çözümlenmesi: Spring, bean'ler arasındaki bağımlılıkları çözer. Bu, @Autowired, @Resource, @Inject anotasyonları veya XML yapılandırma dosyalarındaki <constructor-arg> ve <property> elementleri kullanılarak yapılır.


Bean Oluşturulması ve Bağımlılıklarının Enjekte Edilmesi: Bean tanımlarına ve çözümlenen bağımlılıklara dayanarak, Spring bean örneklerini oluşturur ve bağımlılıklarını enjekte eder.


BeanPostProcessor İşleme: Spring, ApplicationContext'teki tüm BeanPostProcessors'ları çalıştırır. Bu, bean'lerin oluşturulmasından sonra ancak başlatma metotlarının çağrılmasından önce gerçekleşir. BeanPostProcessor'lar, bean örnekleri üzerinde ek işlemler yapmak için kullanılabilir.


Bean Başlatma Metotlarının Çağrılması: Spring, bean'lerin başlatma metotlarını çağırır. Bu, @PostConstruct anotasyonuyla işaretlenmiş metotlar veya XML yapılandırma dosyalarındaki init-method özelliği ile belirtilmiş metotlar olabilir.


Event Yayınlama: ApplicationContext başlatıldıktan sonra, Spring bir ContextRefreshedEvent yayınlar. Bu, uygulamanın diğer bölümlerinin veya bean'lerin, uygulama bağlamının tamamen başlatıldığını ve kullanıma hazır olduğunu bildiren bir olaydır.


Destroy Metotlarının Kaydedilmesi: Uygulama kapatıldığında çağrılacak olan destroy metotları tanımlanır. Bu, @PreDestroy anotasyonuyla işaretlenmiş metotlar veya XML yapılandırma dosyalarındaki destroy-method özelliği ile belirtilmiş metotlar olabilir.


Yukarıdaki adımlar, Spring uygulamasında ApplicationContext'in ayağa kalkarken izlediği genel süreci özetlemektedir. Ancak, uygulamanızın özel yapılandırmasına bağlı olarak bu süreçte değişiklikler olabilir.

Hiç yorum yok

Rastgele İçerik

DonanımHaber

© tüm hakları saklıdır
made with by templateszoo