Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim



Benzer belgeler
Gömülü Sistem Tasarımı. Dr. Deniz TAŞKIN

DİL VE İLETİŞİM. Prof. Dr. V. Doğan GÜNAY

Java EE 5 Teknolojileri Jboss Seam

BİÇİMBİRİMLER. Türetim ve İşletim Ardıllarının Sözlü Dildeki Kullanım Sıklığı. İslam YILDIZ Funda Uzdu YILDIZ V. Doğan GÜNAY

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

JBoss Seam Next Generation Integration Framework

PAPATYA YAYINCILIK EĞİTİM Bilgisayar Sis. San. ve Tic. A.Ş. Veri Madenciliği Yöntemleri Dr. Yalçın ÖZKAN -II-

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

YZM 3215 İleri Web Programlama

Selsoft Eğitim Kataloğu

METİN BİLGİSİ. Prof. Dr. V. Doğan GÜNAY

Spring Framework Eğitimi

Spring Giriş Eğitimi

ÖZGÜR YAZILIMLAR İLE J2EE

.com. Özcan Acar 2009 Kurumsal Java.com

JBoss Seam. Melih Sakarya

Selsoft Academy Eğitim Kataloğu

1. Bölüm Spring'e Giriş

Spring Application Framework e Giriş

Client Server Database

Java Programlama Giriş

Altuğ B. Altıntaş

EMRE CAMADAN KİŞİSEL BİLGİLER EĞİTİM. E-Posta: Cep:

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

Nesne Oluşturma Sırasının Tanımlanması Otomatik Veri Tipi Dönüşümü Tekil Nesneler ve Bean Scope Scope Bazlı Nesnelerin Enjeksiyonu Tanımlanabilir

VERİ MADENCİLİĞİ Kavram ve Algoritmaları

İçindekiler. Okuma lisansı info acar, için verilmiştir. Çoğaltılması ve dağıtılması yasaktır.

İZMİR KÂTİP ÇELEBİ ÜNİVERSİTESİ SÖZLEŞMELİ BİLİŞİM PERSONELİ SINAVINA BAŞVURACAKLAR İÇİN DUYURU

Elektronik Güvenlik Sistemleri. Ahmet YILMAZ

THY A.O. Bilgi Teknolojileri Alanında Tecrübeli Çalışma Arkadaşları Arıyor

9/21/2016

Spring Application Framework Harezmi Bilişim Çözümleri

İçindekiler JPA - Genel Konular...1 Genel Bilgiler...1 JPA Hakkında...1 Temel Kavramlar...3 Kurulum ve Yapılandırma...3 Yapılandırma Dosyası

Java. Hakkımızda. Java Eğitimi

EGE ÜNİVERSİTESİ. Enterprise Java Beans ve Java Persistence API. Grup Üyeleri

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

HTML isteklerini anlayarak HTML sonucu üreten ve yaygın olarak kullanılan temel Servlet sınıfı HttpServlet tir.

Java Dersi. Altuğ Bilgin Altıntaş

Swing ve JDBC ile Database Erişimi

Sistem Analizi ve Tasarımı

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7

MVP, Observer ve Mediator Örüntüleri ile Yeniden Kullanılabilir Uygulama Bileşenleri Geliştirme

Sürücü Belgesi B. Firma Sektörü Bilişim. Bitiş Tarihi Hala çalışıyorum. Firma Sektörü Bilişim. Bitiş Tarihi

1 FULL STACK DEVELOPMENT NEDIR? 1 Nasıl Full Stack Developer Olurum? 2

ENTERPRISE JAVA. Alper AKALIN

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19. Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28

10 yıllık sektör deneyimimiz ve yazılım teknolojileri alanında uzmanlaşmış eğitmen kadromuzla, size, ekibinize ve yazılım kültürünüze değer katacak

İstanbul Üniversitesi Sözleşmeli Bilişim Personeli Alım İlanı

İçerik. Temel Kavramlar. Yazılım Geliştirme Aşamaları. Problemi Anlama ve Çözümleme. Biçimsel Gösterim - 1. Nesneye Yönelik Programlama

Temel Kavramlar. BS-515 Nesneye Yönelik Programlama. Ders #1 (26 Ekim 2009)

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Mühendisliği Temelleri

1.SĠSTEM YÖNETĠCĠSĠ (1 KiĢi Tam Zamanlı Aylık Brüt SözleĢme Ücret Tavanının 3 Katı)

Java 2 Micro Edition (J2ME)

Web Uygulamaları Mimarileri ve Güvenliği

İÇERİK. Amaç. Kapsam. Süreç. Teknik Mimari. Faydalar

Web Tabanlı Uygulama Geliştirme Çatıları

GİRİŞİMCİLİK. Dr. İbrahim Bozacı. Örnekler ve İş Planı Rehberli. Kırıkkale Üniversitesi, Keskin Meslek Yüksek Okulu Öğretim Üyesi.

T.C. SAĞLIK BAKANLIĞI Türkiye Kamu Hastaneleri Kurumu

1. KIDEMLİ SİSTEM UZMANI (1 Kişi Tam Zamanlı Aylık Brüt Sözleşme Ücret Tavanının 3 Katı)

YÜKSEKÖĞRETİM KURULU BAŞKANLIĞINDAN

İnsan Kaynakları Muhasebesi. Doç. Dr. Uğur Kaya

YAZILIM ÜRÜN HATTI DEĞĐŞKENLĐĞĐNĐN DENETĐM ÇEVRĐMĐ ĐLE ELE ALINMASI

Üst Düzey Programlama

GittiGidiyor ve Açık Kaynak Kodlu Yazılımlar

Web Tabanlı J2EE Uygulamalarında Struts Framework & Hibernate Desteği

ÇALIŞMA VE SOSYAL GÜVENLİK BAKANLIĞI SÖZLEŞMELİ BİLİŞİM PERSONELİ GİRİŞ SINAVI İLANI

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Nesne Yönelimli Programlama

Spring Security Framework Harezmi Bilişim Çözümleri

1 REACT (REACTJS) GIRIŞ

EMRE CAMADAN. E-Posta: Cep: KİŞİSEL BİLGİLER. Doğum Tarihi: 28 Haziran 1989 Sürücü Belgesi: B Sınıfı / 2008 EĞİTİM

a) 657 sayılı Devlet Memurları Kanununun 48 inci maddesinde sayılan genel şartları taşımak,

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

AKILLI TATIL PLANLAMA SISTEMI

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

2018/1 PERSONEL ALIMI AVUKAT YAZILI SINAVI MESLEKİ ALAN KONU BAŞLIKLARI 2018/1 PERSONEL ALIMI MİMAR YAZILI SINAVI MESLEKİ ALAN KONU BAŞLIKLARI

İZMİR KÂTİP ÇELEBİ ÜNİVERSİTESİ SÖZLEŞMELİ BİLİŞİM PERSONELİ SINAVINA BAŞVURACAKLAR İÇİN DUYURU

Yazılım Akademisi 2011 Eğitim Sunumu -1

RADYO - TELEVİZYON MEVZUATI VE KONU İLE İLGİLİ YARGI KARARLARI

Selsoft Academy. Eğitim Kataloğu

YAZILIM EĞİTİMLERİ. Masaüstü Veritabanı Web Mobil Programlama. Yazılım Eğitimleri

YZM 3215 İleri Web Programlama

1. KIDEMLİ SİSTEM UZMANI (1 Kişi - Tam Zamanlı - Aylık Brüt Sözleşme Ücret Tavanının 4 Katı)

Tekir (Ön Muhasebe Yazılımı)

Spring Framework Eğitimi

SİGORTA SUİSTİMALLERİ

Transkript:

JAVA Mimarisiyle Kurumsal Çözümler Kurumsal JAVA Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim İstanbul, Ankara, İzmir, Adana

PAPATYA YAYINCILIK EĞİTİM Ekim 2012 Bilgisayar Sis. San. ve Tic. A.Ş. Ankara Caddesi, Prof. Fahreddin Kerim Gökay Vakfı İşhanı Girişi, No: 11/3, Cağaloğlu (Fatih)/İstanbul Tel : (0 212) 527 52 96 - (0 532) 311 31 10 Faks : (0 212) 527 52 97 e-posta : admin@papatya.gen.tr Web : http://www.papatya.gen.tr JAVA Mimarisiyle Kurumsal Çözümler - Rahman USTA 1. Basım Ekim 2012 Yayın Danışmanı Editör Üretim Pazarlama Satış Sayfa Düzenleme Kapak Tasarım Basım ve Ciltleme : Dr. Rifat ÇÖLKESEN (Post-Edu Institute) : Altuğ B. ALTINTAŞ : Olcay KAYA : Batuhan AVCI : Mustafa DEMİR : Papatya - Kelebek Tasarım : Papatya - Kelebek Tasarım : Altan Basım Ltd. (Sertifika No: 11968) / İstanbul Bu kitabın her türlü yayın hakkı Papatya Yayıncılık Eğitim A.Ş. ye aittir. Yayınevinden yazılı izin alınmaksızın alıntı yapılamaz, kısmen veya tamamen hiçbir şekil ve teknikle ÇOĞALTILAMAZ, BASILAMAZ, YAYIMLANA- MAZ. Kitabın, tamamı veya bir kısmının fotokopi makinesi, ofset gibi teknikle çoğaltılması, hem çoğaltan hem de bulunduranlar için yasadışı bir davranıştır. Lütfen kitabımızın fotokopi yöntemiyle çoğaltılmasına engel olunuz. Fotokopi hızsızlıktır. Rahman, Usta. Java Mimarisiyle Kurumsal Çözümler/Rahman Usta İstanbul: Papatya Yayıncılık Eğitim, 2012. XII, 272 s.; 24 cm. Kaynakça ve dizin var. ISBN: 978-605-4220-52-6. Sertifika No: 11218 1.Java EE 2. JPA 3.EJB 4. Java Programlama Dili 5. JSF I.Title. II

Dehlizin sonundaki ışık görünüyorsa, hedefe kaç adım kaldığının bir önemi yoktur. Nurtanem e III

Teşekkür Canımdan çok sevdiğim Anneme, babama ve ablama; bana yol gösteren ve desteğini her zaman hissettiğim Sayın Altuğ Bilgin ALTINTAŞ a; yardımlarını ve bilgisini esirgemeyen Sayın Hüseyin AKDOĞAN a; kitabın daha da nitelikli olmasına katkılarından dolayı Sayın Dr. Rifat ÇÖLKESEN ve Yrd. Doç. Dr. Buket DOĞAN a; sayfa düzenlemesinde ve kapak tasarımında emeği geçen Sayın Olcay KAYA ya; manevi katkılarından dolayı Sayın Selçuk BAHADIR ve Yusuf ÇİMENTAY a; doğrudan ya da dolaylı yoldan hakkı geçen herkese ve tüm teşekkür ederim. ailesine Rahman USTA IV

İçindekiler ÖNSÖZ Java da Çok Kullanılan Kısaltmalar ve Terimler XI XII Bölüm 1. GİRİŞ VE AMAÇ 13 Kitap Çalışmasının Amacı 14 Bölüm 2. KURUMSAL JAVA YA GİRİŞ 15 2.1. Java nın Kısa Tarih 15 2.2. JCP (Java Community Process) 16 2.3. Standartlar 17 2.4. Java EE nin Yapısı 17 2.4.1. Bileşenler 18 2.4.2. Konteynerler 19 2.4.3. Konteyner Servisleri 19 2.4.4. Ağ Protokolleri 20 2.4.5. Paket Yapıları 21 2.4.6. Standart Java Sürümü - Java SE 21 2.5. Java EE 6 Belirtim (Şartname) Listesi 21 2.6. Java EE 6 ile Gelen Yenilikler 23 2.6.1. Hafiflik 23 2.6.2. Budama ve Fazlalıkları Atma 24 2.6.3. Profiller 24 2.6.4. Kolay Kullanım 25 2.7. Çok Katmanlı Uygulamalar 27 2.7.1. (M)odel-(V)iew-(C)ontroller Tasarım Kalıbı 29 2.7.2. M-V-C Bileşenleri 30 2.8. Çalışma Ortamının Hazırlanması 31 2.8.1. JDK Kurulumu 32 2.8.2. Netbeans IDE Kurulumu 36 V

2.9. GlassFish Uygulama Sunucusu 38 2.9.1. GlassFish Uygulama Sunucusunu Komut Dizininden Başlatmak ve Sonlandırmak 39 2.10. Apache Maven 41 2.10.1. Apache Maven Avantajları 41 2.10.2. Apache Maven Kurulumu 41 2.10.3. Apache Maven Test Edilmesi 43 2.10.4. Maven ile Basit Bir Proje Oluşturmak 43 2.10.5. NetBeans IDE ile Basit Bir Maven Projesi Oluşturmak 46 2.10.6. Apache Maven Proje Yapısı 48 2.10.7. POM (Project Object Model) 50 2.11. Özet 52 2.12. Sorular 52 Bölüm 3. JPA (Java Persistence Api) 53 3.1. JPA Standardına Genel Bakış 54 3.1.1. JPA nın Temel Bileşenleri 54 3.2. JPA Standardının Tarihi 54 3.3. Referans Uygulayıcı Kütüphane 55 3.4. Varlık (Entity) 55 3.5. ORM (Object-Relational Mapping) 55 3.6. Entity Sorgulama 58 3.6.1. Örnek Uygulama 60 3.7. Entity Sınıflarda Uyulması Gereken Kurallar 68 3.8. Diğer Yapılandırıcı Notasyonlar 68 3.8.1. @Table Notasyonu 68 3.8.2. @SecondaryTable(s) Notasyonu 69 3.8.3. @Basic Notasyonu 70 3.8.4. @Temporal Notasyonu 71 3.8.5. @Transient Notasyonu 72 3.9. Koleksiyon Türündeki Nesnelerin Haritalanması 72 3.10. Map Tipindeki Nesnelerin Haritalanması 73 3.10.1. Katılım Sütunu 74 3.10.2. Katılım Tablosu 74 VI

3.11. Entity-arası İlişkiler 75 3.11.1. Tek Yönlü Sahiplik 75 3.11.2. Çift Yönlü Sahiplik 76 3.11.3. Bire-bir İlişki ve Çift Yönlü Sahiplik 76 3.11.4. Bire-bir İlişki ve Tek Yönlü Sahiplik 78 3.11.5. Birden-çoğa ve Tek Yönlü Sahiplik 79 3.11.6. Çoktan-çoğa ve Çift Yönlü Sahiplik 80 3.12. Entity İlişkilerinde Sıralama 82 3.12.1. @OrderBy Notasyonu 82 3.12.2. @OrderColumn Notasyonu 82 3.13. Kalıtım Yaklaşımıyla Haritalama 82 3.13.1. Her sınıf için tek tablo Stratejisi 83 3.13.1.1. @DiscriminatorColumn ve @DiscriminatorValue Notasyonları 84 3.13.2. Katılmış altsınıflar Stratejisi 85 3.13.3. Her sınıf için ayrı tablo Stratejisi 87 3.14. Entity Nesnelerinin Yaşam Süreci 88 3.14.1 Sık Kullanılan EntityManager Yordamları 90 3.15. Zincirleme Entity Operasyonları 92 3.16. Entity Nesnelerinin Yaşam Sürecinin Takibi 102 3.16.1 Çağrılar 102 3.16.2 Dinleyiciler 105 3.17. Özet 107 3.18. Sorular 108 Bölüm 4. EJB (Enterprise Java Beans) 109 4.1. EJB (Enterprise Java Bean) Çeşitleri 110 4.1.1. Oturum Nesneleri (Session Beans) 110 4.2. Enterprise Java Bean Uygulama Örneği 112 4.2.1. Uygulama Açıklaması 112 4.3. Alışveriş Sepeti Uygulaması Testleri 120 4.4. Oturum Nesnelerinin Yaşam Döngüsü 123 4.4.1. Oturum Nesnelerinin Yaşam Döngüsünün Takibi 123 4.5. Oturum Nesnelerinde Çağrılar 123 4.6. Kesiciler 125 VII

4.7. Kesiciler Örnek Uygulama 126 4.8. Özet 129 4.9. Sorular 129 Bölüm 5. JSF (JavaServer Faces) 131 5.1. JSF nin Yapısı 132 5.2. JSF (JavaServer Faces) Yaşam Döngüsü 134 5.2.1. JSF Yaşam Döngüsü Evreleri 135 5.3. JavaServer Faces Uygulaması 138 5.3.1. JavaServer Faces Uygulaması ve Maven Web Proje Yapısı 139 5.4. Evre Dinleyiciler 153 5.4.1. Evre Dinleyici Oluşturma ve Tanıtma 154 5.4.2. Görünüm Ağacının Görüntülenmesi 155 5.5. JSF Yönetimli Nesneler 166 5.5.1. JSF Yönetimli Nesnelerin Kapsamı 166 5.6. JSF Mesaj Yönetimi 171 5.6.1. Görüntülenecek Mesajın Oluşturulması 171 5.7. Dönüştürüm ve Geçerlilik Kontrolü 174 5.7.1. Dönüştürücüler 175 5.7.2. Geçerleyiciler 182 5.8. Statik İçerik Yönetimi ve Şablon Kullanımı 186 5.9. Özet 192 5.10. Sorular 193 Bölüm 6. SPRING FRAMEWORK 195 6.1. IOC (Inversion Of Control) 196 6.2. Bağlaşım ve Bağlaşımı Koparmak 196 6.3. Bağımlılık Zerki 201 6.4. Bağımlılık Zerkeyleyici Uygulaması 202 6.5. XML Bazlı Spring Framework Yapılandırıcısı 203 6.6. Neden Spring? 206 6.7. JSF ve Spring Framework Entegrasyonu 207 6.8. JSF, Spring ve Hibernate Uygulaması 209 6.9. Özet 219 6.10. Sorular 220 VIII

Bölüm 7. WEB SERVİSLERİ 221 7.1. REST Yaklaşımı 224 7.2. REST in Avantajları 224 7.1.3. REST Mimarisinde Bulunan 3 Temel Kavram 226 7.1.3.1. Kaynak /Noun 226 7.1.3.2. Metodlar (Verbs/Eylemler) 226 7.1.3.3. Giriş ve Çıkış 227 7.3. Internet Medya Türleri 228 7.4. RESTful Web Servisi Uygulaması 229 7.5. curl Yazılımının Kurulumu 241 7.6. curl Yazılımımın Test Edilmesi 242 7.7. RESTful Web Servisin Uygulama Sunucusuna Aktarılması 243 7.8. RESTful Uygulamasının Test Edilmesi 244 7.9. RESTful Mimarisiyle JQuery Kullanımı 247 7.9.1. JQuery Kurulumu 248 7.9.2. JQuery ile HTTP İsteklerinin Yönetilmesi 249 7.9.3. JQuery Ajax Kütüphanesi ile /GET ve /POST Yordamlarının İşletilmesi 250 7.10. JQuery ile REST Client Uygulaması 251 7.10.1. JQuery ile temel CRUD işlemleri 251 7.11. Özet 265 7.12. Sorular 265 Kaynakça 267 Dizin 269 IX

X

Önsöz Java dünyasının dağınık ve seçimlerin fazla olması birçok yazılımcı için kabus durumu oluşturmuştur. Java dünyasında ki hızlı gelişmeler sadece yeni başlayan kişileri değil, yıllardır Java dünyasında uygulama geliştiren kişilerin bile başını döndürmektedir. Bu kitap bu dağınık ve hızlı değişiklerin neler olduğunu güzel örneklerle anlatan eşsiz bir kitaptır. Konular sadece teorik olarak değil; görsellikle desteklenmiş ve anlaşılır örneklerle konuların hızlı anlaşılmasını sağlanmıştır. Bu kitapla Rahman USTA nın sektörümüze önemli bir katkı sağladığını düşünüyor ve kendisini böylesi derin ve titiz çalışmasından dolayı kutluyorum. Altuğ Bilgin ALTINTAŞ www.kodcu.com XI

Java da Çok Kullanılan AOP DI EJB IOC JCP JDBC JMS JND JPA JSF JSON JSR JTA JVM ORM REST SQL UI Kısaltmalar Aspect Oriented Programming Dependency Injection Enterprise Java Bean Inversion Of Control Java Community Process Java Database Connectivity Java Message Services Java Naming and Directory Interface Java Persiste API JavaServer Faces JavaScript Object Notation Java Spesification Request Java Transaction API Java Virtual Machine Object-Relational Mapping Representational State Transfer Structured Query Language User Interface Terimler bağımlılık zerki dependency injection bağımlılık zerkeyleci dependency injector bağlaşım koparma de-coupling bağlaşım coupling birincil anahtar primary key çöp toplayıcı garbage collector görev action isim-uzayı namespace iş katmanı business tier konteyner container nesne bean, object sınıf class Web katmanı Web tier yabancı anahtar foreign key yönetimli nesne managed bean XII