17
Spring Framework Spring Framework Eğitimi Eğitimi Hazırlayan: Barış Dere www.barisdere.com @BarisDere [email protected] Ders 1: Genel bir bakış Ders 1: Genel bir bakış Http://www.youtube.com/barisdere Http://www.youtube.com/barisdere

Spring framework egitimi ders 1. genel bir bakis

Embed Size (px)

Citation preview

Page 1: Spring framework egitimi   ders 1. genel bir bakis

Spring Framework Spring Framework EğitimiEğitimi

Hazırlayan: Barış Derewww.barisdere.com @BarisDere

[email protected]

Ders 1: Genel bir bakışDers 1: Genel bir bakış

Http://www.youtube.com/barisdereHttp://www.youtube.com/barisdere

Page 2: Spring framework egitimi   ders 1. genel bir bakis

AjandaAjanda

● Eğitim konuları● Spring Framework nedir?● Inversion Of Control (Container)● Modüller● Neden Spring kullanmalıyız?● Tavsiye linkler

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 3: Spring framework egitimi   ders 1. genel bir bakis

Eğitim konuları

● Spring Framework● Spring ORM● Spring JDBC● Spring AOP● Spring Web● Spring WebFlow● Spring Roo

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 4: Spring framework egitimi   ders 1. genel bir bakis

Spring Framework nedir?

● Kurumsal Java uygulamalarını geliştirmeyi kolaylaştıran ve hızlandıran uygulama geliştirme çatısı (Application framework)

● Açık kaynak kodlu● POJO – nesne tabanlı

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 5: Spring framework egitimi   ders 1. genel bir bakis

Spring Framework nedir? (2)

● Mimarı Rod Johnson● Ekim 2002 - Expert One-on-One J2EE Design

and Development kitabı çıktı● İlk versiyonu (1.0) 2003 tarihinde Rod Johnson

tarafından çıkarıldı● Apache License 2.0● En son versiyonu 3.1.0 Aralık 2011 itibariyle

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 6: Spring framework egitimi   ders 1. genel bir bakis

Spring Framework nedir? (3)

● Spring bir çok problem alanına çözümler sunuyor

– Modern Web (REST, HTML5, AJAX)

– Data Access (RDBMS, NoSQL, Map Reduce, Cloud)

– Integration (Enterprise Orchestration, Messaging, Batch applications)

– Mobile (Android, Iphone)

– Sosyal ağlarla entegrasyon (Facebook, Twitter, Linkedin)

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 7: Spring framework egitimi   ders 1. genel bir bakis

Spring Framework nedir? (4)

● (Devam...) Spring bir çok problem alanına çözümler sunuyor

– Security (Authorization ve Authentication entegrasyonu

– Cloud Ready (Google App Engine, Amazon EC2, Cloud Foundry)

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 8: Spring framework egitimi   ders 1. genel bir bakis

Inversion of Control (Dependency Injection)

● En kısa anlatımıyla 'Bağımlılıkları yok etmek'● Ne yapılacağını ne zaman yapılacağından

ayırmak● Kontrolün yer değiştirmesi● Ilk 1988 Martin Fowler tarafından ortaya atıldı● Dependency Injection olarak yeniden

tanımlandı

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 9: Spring framework egitimi   ders 1. genel bir bakis

Inversion of Control (Dependency Injection) (2)

Kontrol sizde Kontrol sistemde

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakış

#ruby#ruby puts 'What is your name?' puts 'What is your name?' name = gets name = gets process_name(name) process_name(name) puts 'What is your address?' puts 'What is your address?' address = gets address = gets process_address(address) process_address(address)

require 'tk'require 'tk' root = TkRoot.new() root = TkRoot.new() name_label = TkLabel.new() {text "What is Your Name?"} name_label = TkLabel.new() {text "What is Your Name?"} name_label.pack name_label.pack name = TkEntry.new(root).pack name = TkEntry.new(root).pack name.bind("FocusOut") {process_name(name)} name.bind("FocusOut") {process_name(name)} addr_label = TkLabel.new() {text "What is Your Address?"} addr_label = TkLabel.new() {text "What is Your Address?"} addr_label.pack addr_label.pack address = TkEntry.new(root).pack address = TkEntry.new(root).pack address.bind("FocusOut") {process_address(address)} address.bind("FocusOut") {process_address(address)} Tk.mainloop() Tk.mainloop()

www.barisdere.com

Page 10: Spring framework egitimi   ders 1. genel bir bakis

Inversion of Control (Dependency Injection) (3)

● Inversion of Control uygulamaları:– using a factory pattern

– using a service locator pattern

– using a constructor injection

– using a setter injection

– using an interface injection

– using a contextualized lookup

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 11: Spring framework egitimi   ders 1. genel bir bakis

Inversion of Control container

Nesnelerin – hayat döngüsünü yönetmek

– bağımlılıklarını yönetmek

– konfigürasyonunu sağlamak

– beraber bir bütün halinde çalışmasını sağlamak

– tasarım kalıplarının kullanışını kolaylaştırmak

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 12: Spring framework egitimi   ders 1. genel bir bakis

Inversion of Control container (Dependency Injection) (2)

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 13: Spring framework egitimi   ders 1. genel bir bakis

Modüller

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 14: Spring framework egitimi   ders 1. genel bir bakis

Neden Spring Framework?

● Kendini ispatlamış (Dünya çapında milyonlarca kullanıcısı var)

● Inversion Of Control gücü● Kolay test edilebilir● Gereksiz Exceptions sınıfları gizlenmiş● Diğer API veya frameworklar için işimizi

kolaylaştıran araçlar

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 15: Spring framework egitimi   ders 1. genel bir bakis

Neden Spring Framework? (2)

● AOP entegrasyonu ve bununla gelen kolaylaştırılmıs:

– Auditing– Declarative Transaction Management– Caching– Exception Handling– Recovery (Retry)– Security

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 16: Spring framework egitimi   ders 1. genel bir bakis

Tavsiye linkler

● http://martinfowler.com/bliki/InversionOfControl.html

● http://www.springsource.org/● http://martinfowler.com/articles/injection.html

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com

Page 17: Spring framework egitimi   ders 1. genel bir bakis

Ders notları

● Presentasyon dosyalarını download etmek için: www.barisdere.com

● Tüm Full HD videolar için: http://www.youtube.com/barisdere

● Takip etmek için: @BarisDere● Bana ulaşmak için: [email protected]

Spring Framework EğitimiSpring Framework Eğitimi Genel bakışGenel bakışwww.barisdere.com