Maltepe Üniversitesi - Spring AOP
-
Upload
mimar-aslan -
Category
Software
-
view
506 -
download
3
Transcript of Maltepe Üniversitesi - Spring AOP
Spring AOP Semineri
Turkey JUG Lideri Senior Java DeveloperBilgisayar Mühendisi
Mimar Aslan
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 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
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 DeveloperBilgisayar Mühendisi
Mimar Aslan
AOP
Turkey Java User Group