Turkey JUG (Java User Group) Leader,
Turkey JBUG (JBoss User Group) Leader,
Computer Engineer, Senior Java Architect,
Software (Author, Speaker, Trainer)
Mimar Aslan
Spring AOP Semineri
TurkeyJUG 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ızistanTü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?
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 deSpring 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ındabizi 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 nesnetabanlı 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.
AOP ve OOParası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?
seminerine katılıp
benisabı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