Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 28258|Yanıt: 2

[Kaynak] Pratik İşlem: Spring Boot'ta AOP, istek parametre değerini dinamik olarak değiştirir

[Bağlantıyı kopyala]
Yayınlandı 6.11.2021 12:15:55 | | | |
Gereksinimler: Proje, istek parametrelerini dinamik olarak değiştirmeli, mevcut kullanıcının izinlerine göre istek parametrelerine değer atamalıdır; parametreler denetleyici yöntemine girmeden önce, istek parametrelerinin değiştirilmesi tamamlanmalıdır ve denetleyici hizmet katmanını çağırdığında, istek parametreleri veriyi sorgulamak ve değiştirmek için koşul olarak kullanılabilir. Parametre talep etme iki durumu vardır:

  • Yüksek ayrıcalığa sahip kullanıcılar için, istenen gerçek parametre değerlerini kullanabilirsiniz
  • Yalnızca kısmi izinlere sahip kişiler için, istek parametre değerleri mevcut kullanıcıya bağlı bilgiye göre dinamik olarak değiştirilir


Başta bunu bir filtreyle uygulamak istedim ama istek içeriğini serilikten çıkarıp serilikten çıkarmak çok zahmetliydi ve ayrıca çok mantıksal değerlendirme ve performans kaybı gerektiriyordu. Neyse ki, Spring basit kodla uygulanabilen AOP yüz odaklı işlevsellik sağlar.

Öncelikle, maven projesinin pom.xml bahar-boot-starter-aop paketini şu şekilde tanıtması gerekiyor:

Paket tanıtıldığında, AOP özelliğini kullanarak@Aspectek açıklama.

Aspect 5 tür bildirim açıklamasını destekler:

@Before: Yöntem çalıştırılmadan önce yapılan ön bildirim

@After: Bildirim sonrası işlem, yöntem yürütüldükten sonra yürütülen

@AfterRunning: Bir bildirim döndürür, bu bildirim yöntem sonuç verdikten sonra çalıştırılır

@AfterThrowing: İstisna bildirimi, metod bir istisna attıktan sonra

@Around: Yöntem yürütme etrafında wraparound bildirimler

Request.java genel bir istek wrapper sınıfı oluşturun:

Yeni bir UserInfo.java özel veri sınıfı talep edin:

Mevcut istek başlığında appid varsa, istek parametresinin appId değeri değiştirilir, aksi takdirde istek parametresi değiştirilmez, kod şu şekildedir:

Yeni bir HomeController denetleyicisi oluşturun ve Request'i içeren bir talep parametresine sahip bir arayüz ekleyin<UserInfo>; kod şu şekildedir:

appId istek başlığı olmadan yapılan testlerde, istek parametresi appId gerçek değerdir ve aşağıdaki şekilde gösterildiği gibi değiştirilmemiştir:



appId istek başlığını eklemeye çalışırsanız, aşağıdaki şekilde gösterildiği gibi appId isteği parametresinin başarıyla değiştirildiğini görebilirsiniz:



Son olarak, kaynak kodunu ekleyin:Bağlantı girişi görünür.





Önceki:Cihaz ağ iletişim hızlarını test etmek için iPerf3 kullanın
Önümüzdeki:VMware ESXi'ye iDRAC Hizmet Modülü yazılımını kur
 Ev sahibi| Yayınlandı 6.11.2021 12:21:32 |
Spring AOP'ta, iş mantığı yalnızca işletmenin kendisine odaklanır; loglama, performans istatistikleri, güvenlik kontrolü, işlem işleme, istisna yönetimi vb. gibi unsurları iş mantığı kodundan ayırır ve bu davranışları ayırarak, iş mantığını yönlendirmeyen yöntemlere ayırmayı ve ardından bu davranışları işletme mantığı kodunu etkilemeden değiştirmeyi umuyoruz.
Yayınlandı 15.03.2023 11:11:04 |
zsdfghjkvbjnm
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com