Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 28258|Vastaus: 2

[Lähde] Käytännön toiminta: AOP Spring Bootissa muuttaa dynaamisesti pyyntöparametrin arvoa

[Kopioi linkki]
Julkaistu 6.11.2021 12.15.55 | | | |
Vaatimukset: Projektin tulee dynaamisesti muokata pyyntöparametreja, määrittää arvot pyyntöparametreille nykyisen käyttäjän oikeuksien mukaisesti, ennen kuin parametrit siirtyvät ohjainmetodiin, pyyntöparametrien muokkaus on suoritettava, ja kun ohjain kutsuu palvelukerroksen, pyyntöparametreja voidaan käyttää ehtoina datan kyselyyn ja muokkaamiseen. Parametrien pyytämisestä on kaksi tapausta:

  • Käyttäjille, joilla on korkeat oikeudet, voit käyttää varsinaisia pyydettyjä parametriarvoja
  • Henkilöille, joilla on vain osittaiset oikeudet, pyyntöparametrien arvoja muutetaan dynaamisesti nykyisen käyttäjän sidottua tietoa perusteella


Aluksi halusin toteuttaa sen suodattimen kautta, mutta pyyntösisällön sarjallistaminen ja deserialisointi oli liian hankalaa, ja se vaati myös paljon loogista harkintaa ja suorituskyvyn menetystä. Onneksi Spring tarjoaa AOP-kasvoihin suuntautuvan toiminnallisuuden, joka voidaan toteuttaa yksinkertaisella koodilla.

Ensinnäkin maven-projektin täytyy pom.xml esitellä kevät-boot-starter-aop -paketti seuraavasti:

Kun paketti on julkaistu, voimme käyttää AOP-ominaisuutta@Aspecthuomautus.

Aspect tukee viittä ilmoitusten annotaatiotyyppiä:

@Before: Esiilmoitus, joka suoritetaan ennen metodin suorittamista

@After: Ilmoituksen jälkeen, suoritetaan metodin suorittamisen jälkeen

@AfterRunning: Palauttaa ilmoituksen, joka suoritetaan sen jälkeen, kun metodi palauttaa tuloksen

@AfterThrowing: Poikkeusilmoitus, kun metodi heittää poikkeuksen

@Around: Wraparound-ilmoitukset, metodin suorituksen ympärillä

Luo Request.java yleinen pyyntökääreluokka:

Luo uusi UserInfo.java pyydä spesifinen dataluokka:

Jos nykyisessä pyyntöotsikossa on appid, pyyntöparametrin appId arvoa muutetaan, muuten pyyntöparametria ei muuteta, koodi on seuraava:

Luo uusi HomeController-ohjain ja lisää rajapinta, jossa on pyyntöparametri, joka sisältää <UserInfo>Requestin, koodi on seuraava:

Testauksessa ilman appId-pyyntöotsikkoa pyyntöparametri appId on todellinen arvo eikä sitä ole muutettu, kuten seuraavassa kuvassa on esitetty:



Jos yrität lisätä appId-pyynnön otsikon, näet, että appId-pyyntöparametria on onnistuneesti muokattu, kuten seuraavassa kuvassa näkyy:



Lopuksi liitä lähdekoodi:Hyperlinkin kirjautuminen on näkyvissä.





Edellinen:Käytä iPerf3:ta laitteiden verkon viestintänopeuksien testaamiseen
Seuraava:Asenna iDRAC Service Module -ohjelmisto VMware ESXiin
 Vuokraisäntä| Julkaistu 6.11.2021 12.21.32 |
Spring AOP:ssa liiketoimintalogiikka keskittyy vain itse liiketoimintaan, erottaen lokituksen, suorituskykytilastot, tietoturvakontrollin, transaktioiden käsittelyn, poikkeusten käsittelyn jne. liiketoimintalogiikan koodista, ja erottamalla nämä käyttäytymiset toivomme pystyvämme erottamaan ne menetelmiin, jotka eivät ohjaa liiketoimintalogiikkaa, ja muuttaa näitä käyttäytymisiä vaikuttamatta liiketoimintalogiikan koodiin.
Julkaistu 15.3.2023 11.11.04 |
zsdfghjkvbjnm
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com