ݺߣ

ݺߣShare a Scribd company logo
SPRING & IOC-DC
Seçil AYDIN
secil.aydin@argela.com.tr
• Kolay uygulama geliştirme
• Hafif yapı
• Esnek
• Modüler
• Bağımsız
• Birçok özellik barındırır
• Yedi farklı katman
• Kolay test edilebilir
• Öne çıkanlar: AOP(Aspec Oriented
Programming), IOC (Inversion of
  Control), DAO(Data Access
  Objects)




  Spring ?
• http://www.springsource.org/download adresinden spring
  çatısı indirilir.
• Spring proje yapısı oluşturulur.
• Hazır IDE kullanılabilir. İndirmek için: Spring Tool Suite




Spring Kullanımı
• Inversion of Control diğer adıyla Dependency Injection
• Birçok uygulama arasında iş akışının kurulmasını sağlar
• Değişik mimarilerden gelen parçaları etkilemeden
  birleşimi sağlar
Tipler:
• Type 1 IOC : Interface Injection
• Type 2 IOC :Setter Injection
• Type 3 IOC : Constructor Injection




IOC Nedir?
• Java nesnelerinin konfigürasyonunu sağlar
• XMLBeanFactory,XML tabanlı dosyadan nesne yönetimi
  yapar
• ListableBeanFactory,property dosyasından nesne
  yönetimi yapar
• BeanFactory nesneleri oluşturulurken tüm singleton
  nesneler oluşturulur
• False yapılmadığı sürece tüm nesneler singleton,true
  olursa protoype olmaktadır. (prototpye: her yaratımda
  yeni bağımsız bir nesne oluşur)
• Performans kaybı olmaması için: lazy-init=true


Bean Factory
<bean id=“library” class=“com.Library”
         <property name=“book”>
                <ref bean=“book”/>
         </property>
  </bean>




XML Konf. Örneği
• Setter metodu ile konfigürasyon dosyasının ayarlandığı
  yöntem



• Web tabanlı uygulamalarda XML biçimi kullanılır




Setter Injection
• Bağımlılıkların sınıflara ait constructorlarda yer almasıdır

• Pico Container; sistem ve sınıflar arasındaki bağlantıların
  ayarlanması için de konfigürasyon içerir

• Fazla bağımlılık fazla kod gerektirir

• Setter metoduna göre daha sağlamdır




Constructor Injection
• Bağımlılıkların enjeksiyonu için interfaceler kullanılır

• Bu interfaceleri içeren containerlera yer verilir

• Interfaceleri gerçekleyen sınıflar yazılır

• Konfigürasyon için de bir sınıf yazılır (konf. dosyasında
  da ayarlanabilir)




Interface Injection
• İhtiyaç duyulan hizmetleri tespit eder

• IOC alternatifi

• Test edilebilirliği az

• Belli bağımlılıklar taşır




Service Locator
• http://www.springsource.org/spring-framework
• Spring Reference Documentation
• http://www.theserverside.com/news/1364527/Introductio
  n-to-the-Spring-Framework
• http://en.wikipedia.org/wiki/Spring_Framework




Kaynaklar

More Related Content

Spring&IOC-DC

  • 1. SPRING & IOC-DC Seçil AYDIN secil.aydin@argela.com.tr
  • 2. • Kolay uygulama geliştirme • Hafif yapı • Esnek • Modüler • Bağımsız • Birçok özellik barındırır • Yedi farklı katman • Kolay test edilebilir • Öne çıkanlar: AOP(Aspec Oriented Programming), IOC (Inversion of Control), DAO(Data Access Objects) Spring ?
  • 3. • http://www.springsource.org/download adresinden spring çatısı indirilir. • Spring proje yapısı oluşturulur. • Hazır IDE kullanılabilir. İndirmek için: Spring Tool Suite Spring Kullanımı
  • 4. • Inversion of Control diğer adıyla Dependency Injection • Birçok uygulama arasında iş akışının kurulmasını sağlar • Değişik mimarilerden gelen parçaları etkilemeden birleşimi sağlar Tipler: • Type 1 IOC : Interface Injection • Type 2 IOC :Setter Injection • Type 3 IOC : Constructor Injection IOC Nedir?
  • 5. • Java nesnelerinin konfigürasyonunu sağlar • XMLBeanFactory,XML tabanlı dosyadan nesne yönetimi yapar • ListableBeanFactory,property dosyasından nesne yönetimi yapar • BeanFactory nesneleri oluşturulurken tüm singleton nesneler oluşturulur • False yapılmadığı sürece tüm nesneler singleton,true olursa protoype olmaktadır. (prototpye: her yaratımda yeni bağımsız bir nesne oluşur) • Performans kaybı olmaması için: lazy-init=true Bean Factory
  • 6. <bean id=“library” class=“com.Library” <property name=“book”> <ref bean=“book”/> </property> </bean> XML Konf. Örneği
  • 7. • Setter metodu ile konfigürasyon dosyasının ayarlandığı yöntem • Web tabanlı uygulamalarda XML biçimi kullanılır Setter Injection
  • 8. • Bağımlılıkların sınıflara ait constructorlarda yer almasıdır • Pico Container; sistem ve sınıflar arasındaki bağlantıların ayarlanması için de konfigürasyon içerir • Fazla bağımlılık fazla kod gerektirir • Setter metoduna göre daha sağlamdır Constructor Injection
  • 9. • Bağımlılıkların enjeksiyonu için interfaceler kullanılır • Bu interfaceleri içeren containerlera yer verilir • Interfaceleri gerçekleyen sınıflar yazılır • Konfigürasyon için de bir sınıf yazılır (konf. dosyasında da ayarlanabilir) Interface Injection
  • 10. • İhtiyaç duyulan hizmetleri tespit eder • IOC alternatifi • Test edilebilirliği az • Belli bağımlılıklar taşır Service Locator
  • 11. • http://www.springsource.org/spring-framework • Spring Reference Documentation • http://www.theserverside.com/news/1364527/Introductio n-to-the-Spring-Framework • http://en.wikipedia.org/wiki/Spring_Framework Kaynaklar