Yön Odaklı Programlama (AOP), aynı zamanda modülerlik sağlaması açısından OOP'leri tamamlar. Ancak modülerliğin temel birimi sınıftan ziyade görünüştür.
AOP, program mantığını farklı parçalara (endişeler olarak adlandırılır) ayırır. Modülerliği arttırmak için kullanılır. Kesişen kaygılar .
A kesişen endişe uygulamanın tamamını etkileyebilecek ve işlem yönetimi, kimlik doğrulama, günlük kaydı, güvenlik vb. gibi kodda mümkün olduğunca tek bir yerde merkezileştirilmesi gereken bir husustur.
Neden AOP kullanıyorsunuz?
Ek endişeyi gerçek mantığın öncesine, sonrasına veya çevresine dinamik olarak eklemek için takılabilir bir yol sağlar. Aşağıda verilen bir sınıfta 10 yöntem olduğunu varsayalım:
class A{ public void m1(){...} public void m2(){...} public void m3(){...} public void m4(){...} public void m5(){...} public void n1(){...} public void n2(){...} public void p1(){...} public void p2(){...} public void p3(){...} }
m'den başlayan 5 yöntem, n'den başlayan 2 yöntem ve p'den başlayan 3 yöntem vardır.
Senaryoyu Anlamak M'den başlayan yöntemleri çağırdıktan sonra günlüğü tutmam ve bildirim göndermem gerekiyor.
AOP olmadan sorun M ile başlayan yöntemlerden (log tutan ve bildirim gönderen) yöntemleri çağırabiliriz. Böyle bir senaryoda kodu 5 yöntemin tamamına yazmamız gerekir.
Ancak müşteri gelecekte bildirim göndermeme gerek olmadığını söylerse tüm yöntemleri değiştirmeniz gerekir. Bakım sorununa yol açar.
AOP ile Çözüm Yöntemden yöntemleri çağırmak zorunda değiliz. Artık günlük tutma, bildirim gönderme vb. gibi ek konuları bir sınıfın yönteminde tanımlayabiliriz. Girişi xml dosyasında verilmiştir.
Gelecekte istemci bildirim işlevinin kaldırılmasını söylerse yalnızca xml dosyasında değişiklik yapmamız gerekecek. Bu nedenle AOP'de bakım kolaydır.
win7 ne zaman çıktı
AOP nerede kullanılır?
AOP çoğunlukla aşağıdaki durumlarda kullanılır:
- Bildirime dayalı işlem yönetimi gibi bildirime dayalı kurumsal hizmetler sağlamak.
- Kullanıcıların özel yönleri uygulamasına olanak tanır.
AOP Kavramları ve Terminolojisi
AOP kavramları ve terminolojileri aşağıdaki gibidir:
- Birleşme noktası
- Tavsiye
- Nokta kesim
- giriiş
- Hedef Nesne
- Bakış açısı
- Durdurucu
- AOP Proxy'si
- Dokuma
Birleşme noktası
Birleştirme noktası programınızdaki yöntem yürütme, istisna işleme, alan erişimi vb. gibi herhangi bir noktadır. Spring yalnızca yöntem yürütme birleştirme noktasını destekler.
Tavsiye
Tavsiye, belirli bir birleşme noktasında bir unsur tarafından gerçekleştirilen bir eylemi temsil eder. Farklı türde tavsiyeler vardır:
- Tavsiyeden Önce : Birleşim noktasından önce yürütülür.
- Geri Döndükten Sonra Tavsiye : Bir ortak nokta normal şekilde tamamlandıktan sonra yürütülür.
- Tavsiye Attıktan Sonra : yöntem bir istisna atarak çıkarsa yürütülür.
- (Sonunda) Tavsiyeden Sonra : Birleşim noktasından çıkıştan (normal veya istisnai dönüş) bağımsız olarak bir birleşme noktasından sonra yürütülür.
- Çevresinde Tavsiye : Birleşim noktasından önce ve sonra çalıştırılır.
Nokta kesim
AOP'nin birleştirme noktalarıyla eşleşen bir ifade dilidir.
giriiş
Bir tür için ek yöntem ve alanların tanıtılması anlamına gelir. Önerilen herhangi bir nesneye yeni arayüz eklemenizi sağlar.
Hedef Nesne
Nesnedir, yani bir veya daha fazla yön tarafından tavsiye edilir. Spring AOP çalışma zamanı proxy'leri kullanılarak uygulandığı için ilkbaharda proxy nesnesi olarak da bilinir.
Bakış açısı
Tavsiyeler, birleşme noktaları vb. içeren bir sınıftır.
Durdurucu
Sadece bir tavsiye içeren bir husustur.
AOP Proxy'si
AOP çerçevesi tarafından oluşturulan özellik sözleşmelerini uygulamak için kullanılır. Bahar çerçevesinde bir JDK dinamik proxy veya CGLIB proxy olacaktır.
Dokuma
Tavsiye edilen bir nesne oluşturmak için görünümü diğer uygulama türleri veya nesnelerle bağlama sürecidir. Dokuma derleme zamanında, yükleme zamanında veya çalışma zamanında yapılabilir. Spring AOP çalışma zamanında dokuma işlemini gerçekleştirir.
sonraki Java'sı var
AOP Uygulamaları
AOP uygulamaları aşağıdakiler tarafından sağlanır:
- GörünümJ
- İlkbahar AOP'si
- JBoss AOP
İlkbahar AOP'si
Spring AOP aşağıda verilen 3 şekilde kullanılabilir. Ancak yaygın olarak kullanılan yaklaşım Spring AspectJ Annotation Style'dır. Spring AOP'yi kullanmanın 3 yolu aşağıda verilmiştir:
- Spring1.2'ye göre Eski stil (dtd tabanlı) (Spring3'te de desteklenir)
- AspectJ ek açıklama stiline göre
- Spring XML yapılandırma stiline göre (şema tabanlı)
Referans bağlantıları
Bahar Kaynağı AOPBahar Kaynağı AOP API'si
Vikipedi