See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 28258|Vastuse: 2

[Allikas] Praktiline operatsioon: AOP Spring Bootis muudab dünaamiliselt päringuparameetri väärtust

[Kopeeri link]
Postitatud 06.11.2021 12:15:55 | | | |
Nõuded: Projekt peab dünaamiliselt muutma päringuparameetreid, määrama päringuparameetritele väärtused vastavalt praeguse kasutaja õigustele, enne kui parameetrid sisenevad kontrolleri meetodi, tuleb taotlusparameetrite muutmine lõpetada ning kui kontroller kutsub teenusekihti, saab päringuparameetreid kasutada tingimustena andmete pärimiseks ja muutmiseks. Parameetrite taotlemiseks on kaks juhtumit:

  • Kõrgete privileegidega kasutajatele saab kasutada tegelikke soovitud parameetri väärtusi
  • Inimestel, kellel on ainult osalised õigused, muudetakse päringuparameetrite väärtusi dünaamiliselt vastavalt praegusele kasutajale seotud infole


Alguses tahtsin selle rakendada filtri kaudu, kuid see oli liiga kohmakas järjestada ja deserialiseerida päringu sisu ning nõudis ka palju loogilist otsustusvõimet ja jõudluse kaotust. Õnneks pakub Spring AOP näopõhist funktsionaalsust, mida saab rakendada lihtsa koodiga.

Esiteks peab maven projekt pom.xml tutvustama spring-boot-starter-aop paketti järgmiselt:

Kui pakett on kasutusele võetud, saame kasutada AOP funktsiooni läbi@AspectAnnotatsioon.

Aspekt toetab 5 tüüpi teavituste annotatsioone:

@Before: Eelteade, mis käivitatakse enne meetodi käivitamist

@After: Pärast teavitust, täidetakse pärast meetodi käivitamist

@AfterRunning: Tagastab teavituse, mis täidetakse pärast seda, kui meetod tagastab tulemuse

@AfterThrowing: Eranditeavitus pärast seda, kui meetod viskab erandi

@Around: Ümbritsevad teavitused, meetodi täitmise ümber

Loo Request.java üldine päringute wrapperi klass:

Loo uus UserInfo.java taotle spetsiifilist andmeklassi:

Kui praegusel päringupäisel on appid, muudetakse taotlusparameetri appId väärtust, vastasel juhul taotlusparameetrit ei muudeta, kood on järgmine:

Loo uus HomeControlleri kontroller ja lisa liides päringuparameetriga, mis sisaldab <UserInfo>Requesti, kood on järgmine:

Kui testitakse ilma appId päringupäiseta, on päringuparameeter appId tegelik väärtus ja seda ei ole muudetud, nagu näidatud järgmine joonis:



Kui proovite lisada appId päringu päist, näete, et appId päringu parameeter on edukalt muudetud, nagu näidatud järgmisel joonisel:



Lõpuks lisa lähtekood:Hüperlingi sisselogimine on nähtav.





Eelmine:Kasuta iPerf3 seadme võrgusuhtluse kiiruste testimiseks
Järgmine:Paigalda iDRAC Service Module tarkvara VMware ESXi platvormile
 Üürileandja| Postitatud 06.11.2021 12:21:32 |
Kevadises AOP-is keskendub äriloogika ainult ärile endale, eraldades logimise, jõudlusstatistika, turvakontrolli, tehingute töötlemise, erandite käsitlemise jms äriloogika koodist, ning eraldades need käitumised, loodame neid eraldada meetoditeks, mis ei juhi äriloogikat, ning seejärel muuta neid käitumisi ilma äriloogika koodi mõjutamata.
Postitatud 15.03.2023 11:11:04 |
zsdfghjkvbjnm
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com