uluslararası antalya üniversitesi - spring di - ioc

34
Spring Core Semineri Turkey JUG Lideri Senior Java Developer Bilgisayar Mühendisi Mimar Aslan www.mimaraslan.com [email protected] DI - IoC Turkey Java User Group 4 Nisan 2014

Upload: mimar-aslan

Post on 18-Feb-2017

294 views

Category:

Software


3 download

TRANSCRIPT

Spring Core Semineri

Turkey JUG Lideri Senior Java DeveloperBilgisayar Mühendisi

Mimar Aslan

[email protected]

DI - IoC

Turkey Java User Group

4 Nisan 2014

• 2006, Kırgızistan Türkiye Manas Üniversitesi, Bilgisayar Mühendisliğinden mezun oldum.

• Kendimi bildim bileli kurumsal Java projelerinde yazılım geliştiricisiyim.

• Teknik yazar, eğitmen, danışman ve konuşmacıyım.

• Turkey JUG (Java User Group) ve Turkey JBUG(JBoss User Group)’ın kurucusu ve lideriyim.

• Kurumsal firmalar için yazılım danışmanlık hizmetleri vermekteyim.

• Mesleki kariyerimi yurt içi ve yurt dışında sürdürmekteyim.

Mimar Aslan kimdir?

2010

2013 2014

20122011

2015

Teknik yazarlık serüvenim.

Online Video Eğitimlerim

www.udemy.com/u/mimaraslan

Bilişim Sohbetleri

www.youtube.com/user/BilisimSohbetleri

Bilişim SohbetleriMüsait oldukça her Cuma Türkiye Saat ile 21:00’da CANLI

@BilisimSohbet

Modern Advice Experimenteel Media Laboratorium Sahibi

Elektrik Elektronik MühendisiÇağdaş Öğüt

Turkey JUG Lideri Senior Java Developer Bilgisayar MühendisiMimar Aslan

4 Nisan 2014

• Java’da nesneler ve içerdikleri veriler uygulama çalıştığı zaman bellekte tutulurlar.

• Her nesnein kendine özel durumları ve davranışları vardır.

Java Projelerinde Nesnelerin Kullanmı

• Nesnelerin davranışlarını metotlar belirler.

Konuş

Yürü

Bak

Alkışla

ŞımarGülümse

• Çalışması bittikten sonra kullanılmayan nesneleri, çöp toplayıcı otomatik olarak bellekten temizler.

• Kurumsal uygulamalarda nesnelerin tekrardan kullanımı için nesnelerin yaşam sürelerini belirlemek çok önemlidir.

Çöp Toplayıcı (Garbage Collector)

Presentation Layer Gösterim Katmanı

Business Layer İşletme Katmanı

Persistence Layer Kalıcılık Katmanı

Kurumsal Java Uygulamalarının Mimarisi

Presentation Layer Gösterim Katmanı

Business Layer İşletme Katmanı

Persistence Layer Kalıcılık Katmanı JPA

SPRING

EJB

JSF

JSP

• Uygulama içindeki İşletme Katmanı bizim için çok önemlidir. Spring çatısı bu katmanda vazife alırlar.

Kurumsal Java Uygulamalarının Mimarisi

Presentation Layer Gösterim Katmanı

Business Layer İşletme Katmanı

Persistence Layer Kalıcılık Katmanı

Kurumsal Java Uygulamalarının Mimarisi

Core

MVC

JDBC

• Spring, çeşitli yardımcı modüller ile kurumsal projelere oldukça şık çözümler sunan dev bir eko sistemdir.

Spring Framework(Çatı)sı nedir? Ne değildir?

• Spring çatısı, bir programlama dili değildir!

• Spring, bir Application Server (Uygulama Sunucusu) değildir!

• Spring, kurumsal Java projelerinde işimizi kolaylaştırarak bize zaman kazandıran, application framework(uygulama geliştirme çatısı)dır.

Spring çatısının sahibi hangi firma yada firmalardır?

• Java topluluğu çok geniştir. İçerisinde yazılımcılar, donanımcılar, kurumlar, vakıflar ve üniversiteler yer almaktadır.

• Spring çatısı Java topluluğunun üyelerinden birisi olan Spring Source firmasına aittir.

Spring ücretli midir?

• Apache lisansına sahiptir.

• Tamamen açık kaynak kodludur.

• Ücretsizdir.

• 2003’te de Spring projesinin kodları açık kaynak olarak internette paylaşıldı. Ciddi manada ilk sürümü Mart 2004 yılında çıktı.

Spring çatısı nasıl ortaya çıktı?

• 1998 ve 2000 yılları arasında kurumsal projelerin daha kolay geliştirilmesi ve yönetilmesi için Sun firması tarafından çok ciddi yatırımlar yapıldı ama yine de istenilen sonuçlara ulaşılamadı.

• Spring’in mimarı Rod Johnson, kurumsal Java projelerinde edindiği tecrübeleri içeren “Expert One-on-One J2EE Design and Development” adındaki kitabını 2002 yılında yayınladı.

Spring sürümleri hakkında bizi bilgilendirir misiniz?• Spring Framework 1.0.x Mart 2004

• Spring Framework 2.0.x Ekim 2006

• Spring Framework 2.5.x Kasım 2007

• Spring Framework 3.0.x Aralık 2009

• Spring Framework 3.1.x Şubat 2011

• Spring Framework 3.2.x Aralık 2012

• Spring Framework 4.1.x Şubat 2014

• Spring Framework 4.2.x Mart 2015 (Bu seminerin verildiği zamandaki son sürümü bu idi.)

• Sürümlerin yanındaki x’ler rakamları temsil etmektedir.

Java’daki ve diğer başka çatılar ile Spring’i kullanabilir miyiz?

• Evet.

• Modern web (REST, AJAX, HTML5)

• Veritabanları DataAccess (NoSQL, MongoDB, Map Reduce, RDBMS, Cloud)

• Sosyal ağlara entegrasyon (Twitter, Facebook, LinkedIn)

• Security (Authorization ve Authenticaion entegre edilmesi)

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

• Mobile (iOS, Android)

• Integration (Messaging, Enterprise Orchestraion, Batch applications)

Spring hangi problem alanlarına çözümler sunuyor?

Spring’in modülleri hakkında biraz bilgi verir misiniz?

Çekirdek Spring’in içerisinde neler vardır?

• Core içerisinde IoC Container (Kap)

• Resources (Kaynaklar)

• Validation (Doğrulama)

• Data Binding (Veri Bağlama)

• Type Conversion (Tip Dönüştürme)

• Spring Expression Language (SpEL - İfade Dili)

• AOP API'leri

• Test birimleri

Spring çatısını sektörde öne çıkaran özellikler nelerdir?

• Spring, kurumsal Java uygulamalarını geliştirmeyi kolaylaştırarak zamandan kazandıran application framework (uygulama çatısı)dır.

• Spring, basit ve sadeleştirilmiş bir API sunar. Bu sayede Java teknolojilerini bir arada kolayca kullanmaya imkân verir.

• Bağlar esnek olursa bir sınıftaki değişiklik uygulamanın diğer başka kısımlarının çalışmasını aksatmaz. Bu da daha tutarlı kod geliştirilmemizi sağlar.

Spring çatısını sektörde öne çıkaran özellikler nelerdir?

• Spring, interface(ara yüz)’ler ile programlamayı tercih eder.

• Interface’ler sayesinde sınıfların arasında oldukça esnek bağlar kurulur.

• Spring, kendi çatısına ait olan kodları ile uygulamadaki kodlarının mümkün olduğunca çok az temas kurmasını sağlar.

Spring çatısını sektörde öne çıkaran özellikler nelerdir?

• Spring uygulamayı tamamıyla kendi kodları ile işgal etmez.

EJB (Enterprise JavaBeans)’in ortaya çıkış amacı nedir?

• EJB’lerin ilk çıktığı zamanlarda öğrenilmesi çok zor ve zahmetli olduğundan dolayı aradığı ilgi ve alakayı sektördeki yazılımcılar tarafından ne yazık ki bulamadı ve zamanla da cazibesini yitirdi.

• EJB’ler kurumsal projelerin ortak olan sorunlarına çözümler sunmak için üretildiler.

• EJB’ler transaction, uzak noktalardaki makinelerle haberleşmelerde ve verinin güvenliğinin sağlanmasında oldukça etkiliydi.

Spring çatısının ortaya çıkış amacı nedir?

• Spring kurumsal projelerin hemen hemen bütün sorunlarına çok daha zarif ve pratik olarak çözümler sunmayı başardı ve bir anda sektörün de-facto standartı oluverdi.

• Spring de EJB’ye alternatif olabilmek için üretilen çatılardan sadece birisidir.

• Spring nesne tabanlı olduğundan dolayı kodlarımızı dilediğimiz an kolayca test edebilme imkânını da bize sunar.

Spring çatısını kullanmanın bize ne gibi katkıları vardır?

• Spring, yazılım sektöründe kendini ispatlamıştır. Bu nedenle de dünya genelinde milyonlarca kullanıcısı vardır.

• IoC (Inversion Of Control) presnsibini kullanmaktadır. IoC sayesinde çok güçlü bir container haline gelmiştir.

• Spring çatısı, diğer API ve çatıları için organize ve entegre çalışmayı sağlayan birçok yardımcı araçlara sahiptir.

• Gereksiz exception(istisna) sınıflarını yazılımcılardan gizler. Bu soyutlama ile daha temiz bir kod yazma imkânına kavuşuyoruz.

• Annotation (Dipnot) Projeye ait Java sınıf dosyaları değişir ve ek Java sınıfları oluşmaz.

Metadata bilgilerini projede nerelerde yapılandırabiliriz?

• XML dosyalarında Projedeki Java sınıf dosyalarındaki kodlar değişmez.

• Java Sınıflarında Java sınıflarının içi değişmez ama yapılandırma bilgilerini tutan bazı ek Java sınıfları projeye dâhil olur.

Java’da sınıflar birbirini nasıl kullanıyorlar?

• Inheritance(miras, kalıtım) ve composition (kompozisyon) ile sınıfların birbirini kullanırlar ama sınıflar birbirlerine katı olarak yani güçlü bağlar ile bağlıdır.

• Bir sınıftaki nesnenin yaşamı diğerine göbekten bağlıysa buna güçlü ilişki denir.

Java’da sınıflar birbirini nasıl kullanıyorlar?

• Bir sınıf gelişmeye açık ama değişime kapalı olmalıdır.

Kompozisyon (Composition) Kullanımı

Spring Framework Kullanımı

• ApplicationContext ve WebApplicationContext gibi sınıflar da Spring Context modülünde uygulanır.

Spring Context nedir? Ne işe yarar?

• Nesnelerin özellikleri ve aralarındaki ilişkiler metadata tanımlamalarıdır.

• Spring Context bu meta verilerini okur. Ona göre spring bean nesnelerini oluşturur.

• Nesnelerin aralarındaki ilişkileri kurar.

DI (Dependency Injection) yapmanın kaç yolu vardır?

• 3-Method Injection (Sınıfa ait sıradan bir metot enjeksiyonu)

• 1-Constructor Injection (Yapılandırıcı, Hazırlayıcı, Oluşturucu Enjeksiyonu)

• 2-Setter Injection (Ayarlayıcı Enjeksiyonu)

Spring IoC Container (Kap) nedir? Ne işe yarar?

seminerine katılıp

beni sabırla dinlediğiniz için sizlere çok teşekkür ederim.

DI - IoC

Turkey Java User Group

Turkey JUG Lideri Senior Java DeveloperBilgisayar Mühendisi

Mimar Aslan

[email protected]