Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 28258|Válasz: 2

[Forrás] Gyakorlati művelet: Az AOP a Spring Bootban dinamikusan módosítja a kérésparaméter értékét

[Linket másol]
Közzétéve 2021. 11. 06. 12:15:55 | | | |
Követelmények: A projektnek dinamikusan kell módosítania a kérésparamétereket, hogy a jelenlegi felhasználó jogosultságai szerint értékeket rendeljen a kérésparaméterekhez, mielőtt a paraméterek belépnének a vezérlő metódusba, a kérésparaméterek módosítását be kell fejezni, és amikor a vezérlő hívja a szolgáltatási réteget, a kérésparaméterek feltételekként használhatók az adatok lekérdezésére és módosítására. Két eset van, amikor paramétereket kérünk:

  • Magas jogosultsággal rendelkező felhasználók esetén a tényleges kért paraméterértékeket használhatják
  • Azoknál, akiknek csak részleges jogosultságuk van, a kérésparaméterek értékei dinamikusan változnak a jelenlegi felhasználóhoz kötött információk alapján


Eleinte szűrőn keresztül akartam megvalósítani, de túl nehézkes volt a kérés tartalmát serializálni és deserializálni, ráadásul sok logikai ítélőképesség és teljesítményvesztés is szükséges. Szerencsére a Spring AOP arcorientált funkciókat kínál, amely egyszerű kóddal valósítható meg.

Először is, a maven projektnek pom.xml be kell vezetnie a spring-boot-starter-aop csomagot, az alábbiak szerint:

Miután a csomag bevezetése után használhatjuk az AOP funkciót@AspectMegjegyzés.

Az aspektus 5 típusú értesítési megjegyzéseket támogat:

@Before: Előzetes értesítés, amelyet a metódus végrehajtása előtt végeznek

@After: Értesítés után, a metódus végrehajtása után hajtják végre

@AfterRunning: Értesítést ad vissza, amelyet a metódus eredmény után hajtanak végre

@AfterThrowing: Kivételértesítés, miután a metódus kivételt dob

@Around: Körbefutó értesítések, a metódusvégrehajtás körül

Hozz létre Request.java általános kéréscsomagolós osztályt:

Hozz létre egy új adatosztályt, UserInfo.java kérjen specifikus adatosztályt:

Ha a jelenlegi kérés fejlécében appid van, az appId kérésparaméter értéke változik, különben a kérés paraméter nem változik, a kód a következő:

Hozz létre egy új HomeController vezérlőt, és adj hozzá egy interfészt egy request paraméterrel, amely tartalmazza a <UserInfo>Requestet, a kód a következő:

AppId kérésfejléc nélküli tesztelés esetén az appId kérésparaméter az apId tényleges érték, és nem módosították, ahogy az alábbi ábrán látható:



Ha megpróbálod hozzáadni az appId kérés fejléceit, láthatod, hogy az appId kérésparamétert sikeresen módosították, ahogy az alábbi ábrán látható:



Végül csatoljuk a forráskódot:A hiperlink bejelentkezés látható.





Előző:Használd az iPerf3-at az eszközök hálózati kommunikációs sebességének tesztelésére
Következő:Telepítsd a iDRAC Service Module szoftvert VMware ESXi-re
 Háziúr| Közzétéve 2021. 11. 06. 12:21:32 |
A Spring AOP-ban az üzleti logika csak magára az üzletre fókuszál, elválasztva a naplózást, teljesítménystatisztikákat, biztonsági ellenőrzést, tranzakciófeldolgozást, kivételkezelést stb. az üzleti logika kódjáról, és ezeknek a viselkedéseknek a szétválasztásával reméljük, hogy képesek vagyunk őket olyan módszerekre választani, amelyek nem irányítják az üzleti logikát, majd ezeket a viselkedéseket anélkül módosítanák, hogy befolyásolnák az üzleti logika kódját.
Közzétéve 2023. 03. 15. 11:11:04 |
zsdfghjkvbjnm
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com