Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 28258|Atsakyti: 2

[Šaltinis] Praktinis valdymas: AOP "Spring Boot" dinamiškai keičia užklausos parametro reikšmę

[Kopijuoti nuorodą]
Paskelbta 2021-11-06 12:15:55 | | | |
Reikalavimai: Projektas turi dinamiškai modifikuoti užklausos parametrus, priskirti reikšmes užklausos parametrams pagal dabartinio vartotojo leidimus, prieš parametrams įvedant valdiklio metodą, turi būti baigtas užklausos parametrų modifikavimas, o kai valdiklis iškviečia paslaugų sluoksnį, užklausos parametrai gali būti naudojami kaip sąlygos užklausti ir keisti duomenis. Yra du atvejai, kai prašoma parametrų:

  • Vartotojams, turintiems dideles teises, galite naudoti faktines prašomas parametrų reikšmes
  • Žmonėms, turintiems tik dalines teises, užklausos parametrų reikšmės dinamiškai modifikuojamos pagal informaciją, susietą su dabartiniu vartotoju


Iš pradžių norėjau jį įgyvendinti per filtrą, tačiau užklausos turinio serializavimas ir deserializavimas buvo per sudėtingas, be to, reikėjo daug loginio sprendimo ir našumo praradimo. Laimei, "Spring" teikia AOP į veidą orientuotą funkciją, kurią galima įgyvendinti naudojant paprastą kodą.

Visų pirma, maven projektas pom.xml turi pristatyti spyruoklės-boot-starter-aop paketą, taip:

Kai paketas bus pristatytas, galime naudoti AOP funkciją per@AspectKomentaras.

"Aspect palaiko 5 tipų pranešimų komentarus:

@Before: Išankstinis pranešimas, kuris vykdomas prieš vykdant metodą

@After: Po pranešimo, vykdomas įvykdžius metodą

@AfterRunning: pateikia pranešimą, kuris vykdomas po to, kai metodas pateikia rezultatą

@AfterThrowing: Pranešimas apie išimtį, po to, kai metodas pateikia išimtį

@Around: Apgaubiantys pranešimai, metodo vykdymas

Sukurkite Request.java bendrąją užklausų apvalkalo klasę:

Sukurkite naują UserInfo.java prašyti konkrečios duomenų klasės:

Jei dabartinė užklausos antraštė turi appid, užklausos parametro appId reikšmė bus pakeista, priešingu atveju užklausos parametras nebus pakeistas, kodas yra toks:

Sukurkite naują "HomeController" valdiklį ir pridėkite sąsają su užklausos parametru, kuriame yra užklausa<UserInfo>, kodas yra toks:

Jei testuojama be "appId" užklausos antraštės, užklausos parametras "appId" yra faktinė vertė ir nebuvo pakeistas, kaip parodyta toliau pateiktame paveikslėlyje.



Jei bandysite pridėti "appId" užklausos antraštę, pamatysite, kad "appId" užklausos parametras buvo sėkmingai pakeistas, kaip parodyta toliau pateiktame paveikslėlyje.



Galiausiai pridėkite šaltinio kodą:Hipersaito prisijungimas matomas.





Ankstesnis:"iPerf3" naudojimas įrenginio tinklo ryšio greičiui patikrinti
Kitą:Įdiekite "iDRAC Service Module" programinę įrangą VMware ESXi
 Savininkas| Paskelbta 2021-11-06 12:21:32 |
Pavasario AOP verslo logika sutelkia dėmesį tik į patį verslą, atskiriant registravimą, našumo statistiką, saugos kontrolę, operacijų apdorojimą, išimčių tvarkymą ir kt. nuo verslo logikos kodo, ir atskirdami šiuos elgesius, tikimės, kad galėsime juos atskirti į metodus, kurie nevadovauja verslo logika, ir tada pakeisti šį elgesį nepaveikdami verslo logikos kodo.
Paskelbta 2023-03-15 11:11:04 |
zsdfghjkvbjnm
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com