Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 28258|Răspunde: 2

[Sursă] Operațiune practică: AOP în Spring Boot modifică dinamic valoarea parametrului de cerere

[Copiază linkul]
Postat pe 06.11.2021 12:15:55 | | | |
Cerințe: Proiectul trebuie să modifice dinamic parametrii cererii, să atribuie valori parametrilor cererii în funcție de permisiunile utilizatorului curent, înainte ca parametrii să intre în metoda controlerului, modificarea parametrilor cererilor trebuie finalizată, iar când controlerul apelează stratul de serviciu, parametrii cererii pot fi folosiți ca condiții pentru a interoga și modifica datele. Există două cazuri de cerere a parametrilor:

  • Pentru utilizatorii cu privilegii ridicate, poți folosi valorile parametrilor cerute efectiv
  • Pentru persoanele cu permisiuni doar parțiale, valorile parametrilor de cerere sunt modificate dinamic în funcție de informațiile legate de utilizatorul curent


La început, am vrut să-l implementez printr-un filtru, dar era prea greoi să serializez și să deserializez conținutul cererii și a necesitat multă judecată logică și pierdere de performanță. Din fericire, Spring oferă funcționalitate AOP orientată pe față, care poate fi implementată cu cod simplu.

În primul rând, proiectul Maven pom.xml trebuie să introducă pachetul spring-boot-starter-aop, după cum urmează:

Odată ce pachetul este introdus, putem folosi funcția AOP, prin@AspectAdnotare.

Aspect suportă 5 tipuri de adnotări de notificare:

@Before: Pre-notificare, care este executată înainte ca metoda să fie executată

@After: Post-notificare, executată după ce metoda este executată

@AfterRunning: Returnează o notificare, care este executată după ce metoda returnează un rezultat

@AfterThrowing: Notificare de excepție, după ce metoda aruncă o excepție

@Around: Notificări de tip wraparound, în jurul execuției metodei

Creează o Request.java clasă generică de tip wrapper de cerere:

Creează o nouă UserInfo.java solicită o clasă de date specifică:

Dacă antetul cererii curente are un appid, valoarea parametrului de cerere appId va fi modificată, altfel parametrul de cerere nu va fi modificat, codul este următorul:

Creează un nou controler HomeController și adaugă o interfață cu un parametru de cerere care conține Request<UserInfo>, codul fiind următorul:

În cazul testării fără antet de cerere appId, parametrul de cerere appId este valoarea reală și nu a fost modificat, așa cum se arată în figura următoare:



Dacă încerci să adaugi antetul cererii appId, poți vedea că parametrul cererii appId a fost modificat cu succes, așa cum se arată în figura următoare:



În final, atașează codul sursă:Autentificarea cu hyperlink este vizibilă.





Precedent:Folosiți iPerf3 pentru a testa viteza comunicațiilor în rețeaua dispozitivelor
Următor:Instalează software-ul iDRAC Service Module pe VMware ESXi
 Proprietarul| Postat pe 06.11.2021 12:21:32 |
În Spring AOP, logica de business se concentrează doar pe afacerea în sine, împărțind logarea, statisticile de performanță, controlul securității, procesarea tranzacțiilor, gestionarea excepțiilor etc. de codul logicii de business, iar separând aceste comportamente, sperăm să le putem separa în metode care nu ghidează logica de business, apoi să schimbăm aceste comportamente fără a afecta codul logicii de business.
Postat pe 15.03.2023 11:11:04 |
zsdfghjkvbjnm
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com