logo

IoC Konteyneri

  1. IoC Konteyneri
  2. BeanFactory'yi kullanma
  3. ApplicationContext'i kullanma

IoC konteyneri nesnelerin başlatılmasından, yapılandırılmasından ve bir araya getirilmesinden sorumludur. IoC konteyneri XML dosyasından bilgi alır ve buna göre çalışır. IoC konteynerinin gerçekleştirdiği ana görevler şunlardır:

  • uygulama sınıfını başlatmak için
  • nesneyi yapılandırmak için
  • nesneler arasındaki bağımlılıkları bir araya getirmek

İki tür IoC konteyneri vardır. Bunlar:

    Fasulye Fabrikası Uygulama Bağlamı

BeanFactory ve ApplicationContext arasındaki fark

org.springframework.beans.factory. Fasulye Fabrikası ve org.springframework.context. Uygulama Bağlamı arayüzler IoC konteyneri görevi görür. ApplicationContext arayüzü BeanFactory arayüzünün üzerine inşa edilmiştir. Spring'in AOP'si ile basit entegrasyon, mesaj kaynağı yönetimi (I18N için), olay yayılımı, web uygulaması için uygulama katmanına özel bağlam (örn. WebApplicationContext) gibi BeanFactory'den bazı ekstra işlevler ekler. Bu nedenle ApplicationContext'i kullanmak BeanFactory'den daha iyidir.

BeanFactory'yi kullanma

XmlBeanFactory, BeanFactory arayüzünün uygulama sınıfıdır. BeanFactory’yi kullanabilmek için XmlBeanFactory sınıfının örneğini aşağıda verildiği gibi oluşturmamız gerekiyor:

 Resource resource=new ClassPathResource('applicationContext.xml'); BeanFactory factory=new XmlBeanFactory(resource); 

XmlBeanFactory sınıfının yapıcısı Resource nesnesini alır, dolayısıyla BeanFactory nesnesini oluşturmak için kaynak nesnesini aktarmamız gerekir.


ApplicationContext'i kullanma

ClassPathXmlApplicationContext sınıfı, ApplicationContext arayüzünün uygulama sınıfıdır. ApplicationContext'i kullanabilmek için ClassPathXmlApplicationContext sınıfını aşağıda verildiği gibi başlatmamız gerekiyor:

 ApplicationContext context = new ClassPathXmlApplicationContext('applicationContext.xml'); 

ClassPathXmlApplicationContext sınıfının yapıcısı dizeyi alır, böylece ApplicationContext örneğini oluşturmak için xml dosyasının adını iletebiliriz.

ApplicationContext'i kullanmak için örneği indirin