Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 28258|Odpoveď: 2

[Zdroj] Praktická prevádzka: AOP v Spring Boot dynamicky mení hodnotu parametra požiadavky

[Kopírovať odkaz]
Zverejnené 6. 11. 2021 12:15:55 | | | |
Požiadavky: Projekt musí dynamicky upravovať parametre požiadavky, priraďovať hodnoty parametrom požiadavky podľa aktuálnych oprávnení používateľa, pred vstupom parametrov do metódy kontroléra musí byť dokončená úprava parametrov požiadaviek a keď kontrolér volá servisnú vrstvu, parametre požiadavky môžu byť použité ako podmienky na dotazovanie a úpravu dát. Existujú dva prípady požiadavky na parametre:

  • Pre používateľov s vysokými oprávneniami môžete použiť skutočné požadované hodnoty parametrov
  • Pre ľudí s iba čiastočnými oprávneniami sa hodnoty parametrov požiadavky dynamicky menia na základe informácií viazaných na aktuálneho používateľa


Najprv som to chcel implementovať cez filter, ale bolo príliš zdĺhavé serializovať a deserializovať obsah požiadaviek, a tiež to vyžadovalo veľa logického úsudku a straty výkonu. Našťastie Spring poskytuje AOP funkcionalitu orientovanú na tváre, ktorú je možné implementovať jednoduchým kódom.

V prvom rade musí maven projekt pom.xml predstaviť balík spring-boot-starter-aop, a to nasledovne:

Keď je balík predstavený, môžeme použiť funkciu AOP, cez@Aspectanotácia.

Aspect podporuje 5 typov notácií:

@Before: Pred-oznámenie, ktoré sa vykonáva pred vykonaním metódy

@After: Po oznámení, vykonané po vykonaní metódy

@AfterRunning: Vráti upozornenie, ktoré sa vykoná po tom, čo metóda vráti výsledok

@AfterThrowing: Upozornenie na výnimku, po tom, čo metóda vyhodí výnimku

@Around: Wraparound notifikácie, okolo vykonávania metódy

Vytvorte Request.java generickú triedu obalu požiadaviek:

Vytvorte novú UserInfo.java požiadajte o špecifickú dátovú triedu:

Ak má aktuálna hlavička požiadavky appid, hodnota parametra požiadavky appId bude upravená, inak parameter požiadavky nebude upravený, kód je nasledovný:

Vytvorte nový HomeController radič a pridajte rozhranie s parametrom požiadavky obsahujúcim Request<UserInfo>, kód je nasledovný:

V prípade testovania bez hlavičky požiadavky appId je parameter požiadavky appId skutočnou hodnotou a nebol upravený, ako je znázornené na nasledujúcom obrázku:



Ak sa pokúsite pridať hlavičku požiadavky appId, uvidíte, že parameter požiadavky appId bol úspešne upravený, ako je znázornené na nasledujúcom obrázku:



Nakoniec pripojte zdrojový kód:Prihlásenie na hypertextový odkaz je viditeľné.





Predchádzajúci:Použite iPerf3 na testovanie rýchlosti komunikácie v sieti zariadení
Budúci:Nainštalujte softvér iDRAC Service Module na VMware ESXi
 Prenajímateľ| Zverejnené 6. 11. 2021 12:21:32 |
V Spring AOP sa obchodná logika zameriava iba na samotný biznis, oddeľujúc logovanie, štatistiky výkonu, bezpečnostnú kontrolu, spracovanie transakcií, spracovanie výnimiek a podobne od kódu obchodnej logiky, a oddelením týchto správaní dúfame, že ich budeme schopní oddeliť do metód, ktoré nevedú obchodnú logiku, a potom tieto správania meniť bez ovplyvnenia kódu obchodnej logiky.
Zverejnené 15. 3. 2023 11:11:04 |
zsdfghjkvbjnm
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com