SlideShare a Scribd company logo
Spring AOP Semineri
Turkey JUG Lideri

Senior Java Developer
Bilgisayar Mühendisi 

Mimar Aslan



www.mimaraslan.com
mimaraslan@yandex.ru
AOP
24 Aralık 2014
Turkey 

Java User Group
• 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?
Teknik yazarlık serüvenim.
2010
2013 2014
20122011
2015
www.udemy.com/u/mimaraslan
Online Video Eğitimlerim
Bilişim Sohbetleri
www.youtube.com/user/BilisimSohbetleri
Bilişim Sohbetleri
Mü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ühendisi

Mimar Aslan
Bu seminerde neler öğreneceksiniz?
• Spring Core ile kurumsal Java projelerini
• Kurumsal projelerden kullanılan çok katmanlı mimariyi
• AOP (Aspect Oriented Programming - İlgi Yönelimli
Programlama) kavramlarını

• OOP ve AOP ilişkisini

• Spring XML dosyaları ile AOP ilişkisini

• Java ile AOP ilişkisini 

• AOP ile kullanılan annotation’lar

• AspectJ ve AOP ilişkisini
• 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 Aralık 2014 

(Bu seminerin verildiği zamandaki son sürümü bu idi.)
• Sürümlerin yanındaki x’ler rakamları temsil etmektedir.
Spring’in modülleri hakkında biraz bilgi verir misiniz?
• 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ı olur?
• 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(kap) 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ını sağlar.
Spring AOP nedir? Ne değildir?
• AOP'un en büyük amacı uygulamadaki modülerliği arttırmaktır.
Bu sayede kod bakımı kolaylaşır ve kendini tekrar eden kodlar en
aza indirilmiş olunur.
• Spring çatısının bize sunmuş olduğu bir web modülüdür.
• AOP, programın bir parçası olmayan metotların ve modüllerin
merkezi bir yerde toplandıktan sonra programdan bağımsız
olarak uygulanmasını sağlar.
• Projelerde AOP kullanılması zorunlu değildir ama günümüzde
kurumsal projelerde kullanması artık bir ihtiyaçtır.
AOP
• Projelerde transaction, loglama ve güvenlik gibi 

program parçaları uygulamanın her katmanda kullanılır.
Presentation Layer

Gösterim Katmanı
Business Layer

İşletme Katmanı
Persistence Layer

Kalıcılık Katmanı
Services Layer

Hizmetler Katmanı
Users
Kullanıcılar
Data Soruces
Veri Kaynakları
Services
Hizmetler
External Sevices
Dış Servisler
Cross - Cutting 

(Enine Çapraz Kesme)
Auditing (denetleme) 

Transaction Management (işlem yönetimi)

Caching (önbellek)

Exception Handling (istisna işleme)

Recovery (kurtarma, geri dönüştürme)

Retry (yeniden demek, tekararlamak)

Security(güvenlik)
AOP’nin projelerimize entegrasyonun katkıları nelerdir?
AOP ve OOP arasındaki ilişki nedir?
• AOP değişik tipteki nesnelere dağıtılmış bir metodun tek bir
yerde korunmasıdır.
• OOP’nin temeli sınıflar ve nesnelerdir. AOP’nin temeli ise
aspect (yön, bakış açısı)’dır.
• AOP’yi anlayabilmek için encapsulation (saklama, koruma,
kapsülleme)’yi de çok iyi anlamak lazımdır.
• Encapsulation'ın amacı içeriği saklamak değildir sadece
kontrolsüz ve gereksiz erişimlere mani olmaktır. 

AOP, encapsulation’ın tamamlayıcısıdır.
• AOP yaklaşımı OOP’de transaction, loglama ve güvenlik gibi
alt yapısal ihtiyaçlar için kullanılır. AOP, OOP’yi tamamlar.
AOP kavramları nelerdir?
• Aspect - Değişik nesnelere dağıtılmış metotların tek bir yerde
toplanmasıdır.
• JoinPoint - Programın çalışması esnasındaki bir andır. 

Mesela bir metoda girmeden hemen önceki yada bir metottan
çıktıktan hemen sonra gibi sadece bir anı ifade eder.
• PointCut - Çalışma anında eğer bir JoinPoint'e denk gelinirse
PointCut kendisiyle önceden ilişkili kodu devreye sokar.
Mesela loglama kodu istediğimiz bir esnada araya girer ve
çalıştırılır.
• JoinPoint - Programın doğal çalışma seyri içerisinde aspect
kodlarınızın ne zaman çalıştırılması gerektiğinin belirtilmesidir.
• Concern - Transactions (işlemler), logging (not alma),
exception handling (istisna işleme), security (güvenlik),
caching (ön bellek) bunların tümüne verilen isimdir.
AOP kavramları nelerdir?
• AspectJ - Spring AOP modülü ile XML’ler üzerinden AspectJ ile
de Java sınıflarından annotation’lar ile AOP işlemlerini
yapmaktayız.
• Cross-Cutting Concern -
Tüm katmanların hepsinin
dikey olarak
kesmesilmesidir ve AOP'un
merkezindedir.
• Advice - Belirli bir JoinPoint zamanında herhangi bir aspect
tarafından gerçekleştirilen iştir.
before Bir isteğin hemen öncesinde bir metodu çalıştır.
after Bir isteğin hemen sonrasında bir metodu çalıştır.
afterReturning Bir metodun geri dönüş değerinden hemen sonra
işletilecek metodu çalıştır.
afterThrowing Bir işlemde istisna meydana geldikten hemen sonra
işletilecek metodu çalıştır.
around Bir isteğin hemen öncesinde hem de sonrasında
işletilecek bir metodu çalıştır.
AOP kavramları nelerdir?
Sorular & Cevaplar


seminerine katılıp 

beni sabırla dinlediğiniz için 

sizlere çok teşekkür ederim.
Turkey JUG Lideri

Senior Java Developer
Bilgisayar Mühendisi 

Mimar Aslan



www.mimaraslan.com
mimaraslan@yandex.ru
AOP
Turkey 

Java User Group
Maltepe Üniversitesi - Spring AOP

More Related Content

Similar to Maltepe Üniversitesi - Spring AOP

JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
Halil İbrahim ÇELENLİ
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
CodeHAPHabitArtPassi
 
Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.
Hüseyin Örer
 
Yazilim muhendisligi-zirvesi
Yazilim muhendisligi-zirvesiYazilim muhendisligi-zirvesi
Yazilim muhendisligi-zirvesisersld90
 
Angular Web Programlama
Angular Web ProgramlamaAngular Web Programlama
Angular Web Programlama
Cihan Özhan
 
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORM
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORMAzerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORM
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORM
Mimar Aslan
 
Yazilim muhendisligi-hocasi
Yazilim muhendisligi-hocasiYazilim muhendisligi-hocasi
Yazilim muhendisligi-hocasisersld90
 
Yazilim muhendisligi-dokumani
Yazilim muhendisligi-dokumaniYazilim muhendisligi-dokumani
Yazilim muhendisligi-dokumanisersld90
 
C# 5 Yeni özellikler
C# 5 Yeni özelliklerC# 5 Yeni özellikler
C# 5 Yeni özellikler
Erkan BALABAN
 
GDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriGDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme Teknikleri
Lemi Orhan Ergin
 
Spring application framework
Spring application frameworkSpring application framework
Spring application framework
Kenan Sevindik
 
Nedir Bu Java ?
Nedir Bu Java ?Nedir Bu Java ?
Nedir Bu Java ?
Rıdvan Akar
 
Orcad kursu-antalya
Orcad kursu-antalyaOrcad kursu-antalya
Orcad kursu-antalyasersld83
 
JİRA'ya Giriş / Atlassian
JİRA'ya Giriş / AtlassianJİRA'ya Giriş / Atlassian
JİRA'ya Giriş / Atlassian
Cansu Kaya
 
Hepsiburada Micro Frontends Dönüşümü
Hepsiburada Micro Frontends DönüşümüHepsiburada Micro Frontends Dönüşümü
Hepsiburada Micro Frontends Dönüşümü
Oğuzhan Aslan
 
Eclipse
EclipseEclipse
Eclipse
Muharrem Tac
 
Orcad kursu-catalca
Orcad kursu-catalcaOrcad kursu-catalca
Orcad kursu-catalcasersld83
 
Orcad kursu-avcilar
Orcad kursu-avcilarOrcad kursu-avcilar
Orcad kursu-avcilarsersld83
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
Uğur Tılıkoğlu
 

Similar to Maltepe Üniversitesi - Spring AOP (20)

JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.
 
Yazilim muhendisligi-zirvesi
Yazilim muhendisligi-zirvesiYazilim muhendisligi-zirvesi
Yazilim muhendisligi-zirvesi
 
Angular Web Programlama
Angular Web ProgramlamaAngular Web Programlama
Angular Web Programlama
 
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORM
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORMAzerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORM
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORM
 
Yazilim muhendisligi-hocasi
Yazilim muhendisligi-hocasiYazilim muhendisligi-hocasi
Yazilim muhendisligi-hocasi
 
Yazilim muhendisligi-dokumani
Yazilim muhendisligi-dokumaniYazilim muhendisligi-dokumani
Yazilim muhendisligi-dokumani
 
C# 5 Yeni özellikler
C# 5 Yeni özelliklerC# 5 Yeni özellikler
C# 5 Yeni özellikler
 
GDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriGDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme Teknikleri
 
Spring application framework
Spring application frameworkSpring application framework
Spring application framework
 
Nedir Bu Java ?
Nedir Bu Java ?Nedir Bu Java ?
Nedir Bu Java ?
 
Orcad kursu-antalya
Orcad kursu-antalyaOrcad kursu-antalya
Orcad kursu-antalya
 
Bilgi sis..
Bilgi sis..Bilgi sis..
Bilgi sis..
 
JİRA'ya Giriş / Atlassian
JİRA'ya Giriş / AtlassianJİRA'ya Giriş / Atlassian
JİRA'ya Giriş / Atlassian
 
Hepsiburada Micro Frontends Dönüşümü
Hepsiburada Micro Frontends DönüşümüHepsiburada Micro Frontends Dönüşümü
Hepsiburada Micro Frontends Dönüşümü
 
Eclipse
EclipseEclipse
Eclipse
 
Orcad kursu-catalca
Orcad kursu-catalcaOrcad kursu-catalca
Orcad kursu-catalca
 
Orcad kursu-avcilar
Orcad kursu-avcilarOrcad kursu-avcilar
Orcad kursu-avcilar
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 

More from Mimar Aslan

Kırgızistan Türkiye Manas Üniversitesi - Java Teknolojilerinde Kariyer
Kırgızistan Türkiye Manas Üniversitesi - Java Teknolojilerinde Kariyer Kırgızistan Türkiye Manas Üniversitesi - Java Teknolojilerinde Kariyer
Kırgızistan Türkiye Manas Üniversitesi - Java Teknolojilerinde Kariyer
Mimar Aslan
 
İstanbul Ticaret Üniversitesi - Blockchain (Blokzinciri) - Mimar Aslan
İstanbul Ticaret Üniversitesi - Blockchain (Blokzinciri) - Mimar Aslanİstanbul Ticaret Üniversitesi - Blockchain (Blokzinciri) - Mimar Aslan
İstanbul Ticaret Üniversitesi - Blockchain (Blokzinciri) - Mimar Aslan
Mimar Aslan
 
Fırat Üniversitesi - Endüstri 4.0 ve Big Data (Büyük Veri) - Mimar Aslan
Fırat Üniversitesi - Endüstri 4.0 ve Big Data (Büyük Veri) - Mimar AslanFırat Üniversitesi - Endüstri 4.0 ve Big Data (Büyük Veri) - Mimar Aslan
Fırat Üniversitesi - Endüstri 4.0 ve Big Data (Büyük Veri) - Mimar Aslan
Mimar Aslan
 
Yalova Üniversitesi - (JavaServer Pages) JSP
Yalova Üniversitesi - (JavaServer Pages) JSPYalova Üniversitesi - (JavaServer Pages) JSP
Yalova Üniversitesi - (JavaServer Pages) JSP
Mimar Aslan
 
Bilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSF
Bilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSFBilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSF
Bilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSF
Mimar Aslan
 
Beykoz Meslek Yüksekokulu - (JavaServer Faces) JSF
Beykoz Meslek Yüksekokulu - (JavaServer Faces) JSFBeykoz Meslek Yüksekokulu - (JavaServer Faces) JSF
Beykoz Meslek Yüksekokulu - (JavaServer Faces) JSF
Mimar Aslan
 
Kocaeli Üniversitesi - (JavaServer Faces) JSF
Kocaeli Üniversitesi -  (JavaServer Faces) JSFKocaeli Üniversitesi -  (JavaServer Faces) JSF
Kocaeli Üniversitesi - (JavaServer Faces) JSF
Mimar Aslan
 

More from Mimar Aslan (7)

Kırgızistan Türkiye Manas Üniversitesi - Java Teknolojilerinde Kariyer
Kırgızistan Türkiye Manas Üniversitesi - Java Teknolojilerinde Kariyer Kırgızistan Türkiye Manas Üniversitesi - Java Teknolojilerinde Kariyer
Kırgızistan Türkiye Manas Üniversitesi - Java Teknolojilerinde Kariyer
 
İstanbul Ticaret Üniversitesi - Blockchain (Blokzinciri) - Mimar Aslan
İstanbul Ticaret Üniversitesi - Blockchain (Blokzinciri) - Mimar Aslanİstanbul Ticaret Üniversitesi - Blockchain (Blokzinciri) - Mimar Aslan
İstanbul Ticaret Üniversitesi - Blockchain (Blokzinciri) - Mimar Aslan
 
Fırat Üniversitesi - Endüstri 4.0 ve Big Data (Büyük Veri) - Mimar Aslan
Fırat Üniversitesi - Endüstri 4.0 ve Big Data (Büyük Veri) - Mimar AslanFırat Üniversitesi - Endüstri 4.0 ve Big Data (Büyük Veri) - Mimar Aslan
Fırat Üniversitesi - Endüstri 4.0 ve Big Data (Büyük Veri) - Mimar Aslan
 
Yalova Üniversitesi - (JavaServer Pages) JSP
Yalova Üniversitesi - (JavaServer Pages) JSPYalova Üniversitesi - (JavaServer Pages) JSP
Yalova Üniversitesi - (JavaServer Pages) JSP
 
Bilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSF
Bilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSFBilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSF
Bilecik Şeyh Edebali Üniversitesi - (JavaServer Faces) JSF
 
Beykoz Meslek Yüksekokulu - (JavaServer Faces) JSF
Beykoz Meslek Yüksekokulu - (JavaServer Faces) JSFBeykoz Meslek Yüksekokulu - (JavaServer Faces) JSF
Beykoz Meslek Yüksekokulu - (JavaServer Faces) JSF
 
Kocaeli Üniversitesi - (JavaServer Faces) JSF
Kocaeli Üniversitesi -  (JavaServer Faces) JSFKocaeli Üniversitesi -  (JavaServer Faces) JSF
Kocaeli Üniversitesi - (JavaServer Faces) JSF
 

Maltepe Üniversitesi - Spring AOP

  • 1. Spring AOP Semineri Turkey JUG Lideri
 Senior Java Developer Bilgisayar Mühendisi 
 Mimar Aslan
 
 www.mimaraslan.com mimaraslan@yandex.ru AOP 24 Aralık 2014 Turkey 
 Java User Group
  • 2. • 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?
  • 5. Bilişim Sohbetleri www.youtube.com/user/BilisimSohbetleri Bilişim Sohbetleri Mü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ühendisi
 Mimar Aslan
  • 6. Bu seminerde neler öğreneceksiniz? • Spring Core ile kurumsal Java projelerini • Kurumsal projelerden kullanılan çok katmanlı mimariyi • AOP (Aspect Oriented Programming - İlgi Yönelimli Programlama) kavramlarını
 • OOP ve AOP ilişkisini
 • Spring XML dosyaları ile AOP ilişkisini
 • Java ile AOP ilişkisini 
 • AOP ile kullanılan annotation’lar
 • AspectJ ve AOP ilişkisini
  • 7. • 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ı.
  • 8. 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 Aralık 2014 
 (Bu seminerin verildiği zamandaki son sürümü bu idi.) • Sürümlerin yanındaki x’ler rakamları temsil etmektedir.
  • 9. Spring’in modülleri hakkında biraz bilgi verir misiniz?
  • 10. • 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ı olur? • 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(kap) 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ını sağlar.
  • 11. Spring AOP nedir? Ne değildir? • AOP'un en büyük amacı uygulamadaki modülerliği arttırmaktır. Bu sayede kod bakımı kolaylaşır ve kendini tekrar eden kodlar en aza indirilmiş olunur. • Spring çatısının bize sunmuş olduğu bir web modülüdür. • AOP, programın bir parçası olmayan metotların ve modüllerin merkezi bir yerde toplandıktan sonra programdan bağımsız olarak uygulanmasını sağlar. • Projelerde AOP kullanılması zorunlu değildir ama günümüzde kurumsal projelerde kullanması artık bir ihtiyaçtır. AOP • Projelerde transaction, loglama ve güvenlik gibi 
 program parçaları uygulamanın her katmanda kullanılır.
  • 12. Presentation Layer
 Gösterim Katmanı Business Layer
 İşletme Katmanı Persistence Layer
 Kalıcılık Katmanı Services Layer
 Hizmetler Katmanı Users Kullanıcılar Data Soruces Veri Kaynakları Services Hizmetler External Sevices Dış Servisler Cross - Cutting 
 (Enine Çapraz Kesme) Auditing (denetleme) 
 Transaction Management (işlem yönetimi)
 Caching (önbellek)
 Exception Handling (istisna işleme)
 Recovery (kurtarma, geri dönüştürme)
 Retry (yeniden demek, tekararlamak)
 Security(güvenlik) AOP’nin projelerimize entegrasyonun katkıları nelerdir?
  • 13. AOP ve OOP arasındaki ilişki nedir? • AOP değişik tipteki nesnelere dağıtılmış bir metodun tek bir yerde korunmasıdır. • OOP’nin temeli sınıflar ve nesnelerdir. AOP’nin temeli ise aspect (yön, bakış açısı)’dır. • AOP’yi anlayabilmek için encapsulation (saklama, koruma, kapsülleme)’yi de çok iyi anlamak lazımdır. • Encapsulation'ın amacı içeriği saklamak değildir sadece kontrolsüz ve gereksiz erişimlere mani olmaktır. 
 AOP, encapsulation’ın tamamlayıcısıdır. • AOP yaklaşımı OOP’de transaction, loglama ve güvenlik gibi alt yapısal ihtiyaçlar için kullanılır. AOP, OOP’yi tamamlar.
  • 14. AOP kavramları nelerdir? • Aspect - Değişik nesnelere dağıtılmış metotların tek bir yerde toplanmasıdır. • JoinPoint - Programın çalışması esnasındaki bir andır. 
 Mesela bir metoda girmeden hemen önceki yada bir metottan çıktıktan hemen sonra gibi sadece bir anı ifade eder. • PointCut - Çalışma anında eğer bir JoinPoint'e denk gelinirse PointCut kendisiyle önceden ilişkili kodu devreye sokar. Mesela loglama kodu istediğimiz bir esnada araya girer ve çalıştırılır. • JoinPoint - Programın doğal çalışma seyri içerisinde aspect kodlarınızın ne zaman çalıştırılması gerektiğinin belirtilmesidir.
  • 15. • Concern - Transactions (işlemler), logging (not alma), exception handling (istisna işleme), security (güvenlik), caching (ön bellek) bunların tümüne verilen isimdir. AOP kavramları nelerdir? • AspectJ - Spring AOP modülü ile XML’ler üzerinden AspectJ ile de Java sınıflarından annotation’lar ile AOP işlemlerini yapmaktayız. • Cross-Cutting Concern - Tüm katmanların hepsinin dikey olarak kesmesilmesidir ve AOP'un merkezindedir.
  • 16. • Advice - Belirli bir JoinPoint zamanında herhangi bir aspect tarafından gerçekleştirilen iştir. before Bir isteğin hemen öncesinde bir metodu çalıştır. after Bir isteğin hemen sonrasında bir metodu çalıştır. afterReturning Bir metodun geri dönüş değerinden hemen sonra işletilecek metodu çalıştır. afterThrowing Bir işlemde istisna meydana geldikten hemen sonra işletilecek metodu çalıştır. around Bir isteğin hemen öncesinde hem de sonrasında işletilecek bir metodu çalıştır. AOP kavramları nelerdir?
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 27. 
 seminerine katılıp 
 beni sabırla dinlediğiniz için 
 sizlere çok teşekkür ederim. Turkey JUG Lideri
 Senior Java Developer Bilgisayar Mühendisi 
 Mimar Aslan
 
 www.mimaraslan.com mimaraslan@yandex.ru AOP Turkey 
 Java User Group