Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 28258|Odgovoriti: 2

[Vir] Praktično delovanje: AOP v Spring Bootu dinamično spreminja vrednost parametra zahteve

[Kopiraj povezavo]
Objavljeno na 6. 11. 2021 12:15:55 | | | |
Zahteve: Projekt mora dinamično spreminjati parametre zahtev, dodeliti vrednosti parametrom zahteve glede na trenutne uporabnikove dovoljenja, preden parametri vstopijo v metodo krmilnika, mora biti dokončana sprememba parametrov zahtev, in ko krmilnik pokliče servisno plast, se parametri zahtevka lahko uporabijo kot pogoji za poizvedovanje in spreminjanje podatkov. Obstajata dva primera zahteve po parametrih:

  • Za uporabnike z visokimi privilegiji lahko uporabite dejanske zahtevane vrednosti parametrov
  • Za ljudi z le delnimi dovoljenji se vrednosti parametrov zahteve dinamično spreminjajo glede na informacije, vezane na trenutnega uporabnika


Sprva sem želel to implementirati skozi filter, a je bilo preveč nerodno serializirati in deserializirati vsebino zahtev, poleg tega pa je zahtevalo veliko logičnega presojanja in izgube zmogljivosti. Na srečo Spring omogoča funkcionalnost AOP, usmerjeno na obraze, ki jo je mogoče implementirati s preprosto kodo.

Najprej mora projekt maven pom.xml uvesti paket spring-boot-starter-aop, kot sledi:

Ko je paket predstavljen, lahko uporabimo funkcijo AOP, preko@AspectPripomba.

Aspect podpira 5 vrst opomb o obvestilih:

@Before: Predobvestilo, ki se izvede pred izvedbo metode

@After: Po obvestilu, izvedeno po izvedbi metode

@AfterRunning: Vrne obvestilo, ki se izvede po tem, ko metoda vrne rezultat

@AfterThrowing: Obvestilo o izjemi, potem ko metoda vrže izjemo

@Around: Obvestila okoli metode, okoli izvajanja metod

Ustvarite Request.java generični razred ovijalca zahtev:

Ustvarite nov UserInfo.java zahtevajte specifičen razred podatkov:

Če ima trenutna glava zahteve appid, se vrednost parametra zahteve appId spremeni, sicer parameter zahteve ne bo spremenjen, koda je naslednja:

Ustvarite nov krmilnik HomeController in dodajte vmesnik s parametrom zahteve, ki vsebuje Request<UserInfo>, koda pa je naslednja:

V primeru testiranja brez glave zahteve appId je parameter zahteve appId dejanska vrednost in ni bil spremenjen, kot je prikazano na naslednji sliki:



Če poskusite dodati glavo zahteve appId, lahko vidite, da je parameter zahteve appId uspešno spremenjen, kot je prikazano na naslednji sliki:



Na koncu priložite izvorno kodo:Prijava do hiperpovezave je vidna.





Prejšnji:Uporabite iPerf3 za testiranje hitrosti komunikacije v omrežju naprav
Naslednji:Namestite programsko opremo iDRAC Service Module na VMware ESXi
 Najemodajalec| Objavljeno na 6. 11. 2021 12:21:32 |
V Spring AOP se poslovna logika osredotoča le na samo poslovanje, ločuje beleženje, statistiko uspešnosti, varnostni nadzor, obdelavo transakcij, obravnavo izjem itd. od poslovne logične kode, in z ločevanjem teh vedenj upamo, da jih bomo lahko ločili v metode, ki ne vodijo poslovne logike, in nato spremenili ta vedenja, ne da bi vplivali na kodo poslovne logike.
Objavljeno na 15. 03. 2023 11:11:04 |
zsdfghjkvbjnm
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com