Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 28258|Svare: 2

[Kilde] Praktisk drift: AOP i Spring Boot endrer dynamisk parameterverdien for forespørsel

[Kopier lenke]
Publisert på 06.11.2021 12:15:55 | | | |
Krav: Prosjektet må dynamisk endre forespørselsparametrene, tildele verdier til forespørselsparameterne i henhold til den nåværende brukerens tillatelser, før parameterne går inn i kontrollermetoden, må endringen av forespørselsparameterne fullføres, og når kontrolleren kaller tjenestelaget, kan forespørselsparametrene brukes som betingelser for å spørre og endre dataene. Det finnes to tilfeller av forespørrende parametere:

  • For brukere med høye rettigheter kan du bruke de faktiske forespurte parameterverdiene
  • For personer med kun delvise tillatelser endres forespørslingsparameterverdiene dynamisk basert på informasjonen som er bundet til den nåværende brukeren


Først ønsket jeg å implementere det gjennom et filter, men det var for tungvint å serialisere og deserialisere forespørselsinnholdet, og det krevde også mye logisk vurdering og ytelsestap. Heldigvis tilbyr Spring AOP ansiktsorientert funksjonalitet, som kan implementeres med enkel kode.

Først og fremst må Maven-prosjektet pom.xml introdusere spring-boot-starter-aop-pakken, som følger:

Når pakken er introdusert, kan vi bruke AOP-funksjonen, gjennom@Aspectmerknad.

Aspect støtter 5 typer varslingsannotasjoner:

@Before: Forhåndsvarsling, som utføres før metoden utføres

@After: Etter varsling, utført etter at metoden er utført

@AfterRunning: Returnerer et varsel, som utføres etter at metoden returnerer et resultat

@AfterThrowing: Unntaksvarsel, etter at metoden kaster et unntak

@Around: Wraparound-varsler, rundt metodeutførelse

Lag en Request.java generisk forespørselspakkeklasse:

Opprett en ny UserInfo.java be om spesifikk dataklasse:

Hvis den nåværende forespørselsheaderen har en appid, vil verdien av forespørselsparameteren appId bli endret, ellers vil ikke forespørselsparameteren bli endret, koden er som følger:

Opprett en ny HomeController-kontroller og legg til et grensesnitt med en forespørselsparameter som inneholder Request<UserInfo>, koden er som følger:

I tilfelle testing uten appId-forespørselshodet, er forespørselsparameteren appId den faktiske verdien og har ikke blitt endret, som vist i følgende figur:



Hvis du prøver å legge til appId-forespørselshodet, kan du se at appId-forespørselsparameteren har blitt endret med suksess, som vist i følgende figur:



Til slutt, legg ved kildekoden:Innloggingen med hyperkoblingen er synlig.





Foregående:Bruk iPerf3 for å teste enhetens nettverkskommunikasjonshastigheter
Neste:Installer iDRAC Service Module-programvare på VMware ESXi
 Vert| Publisert på 06.11.2021 12:21:32 |
I Spring AOP fokuserer forretningslogikk kun på selve virksomheten, ved å dele logging, ytelsesstatistikk, sikkerhetskontroll, transaksjonsbehandling, unntakshåndtering osv. fra forretningslogikkkoden, og ved å skille disse atferdene håper vi å kunne skille dem inn i metoder som ikke styrer forretningslogikken, og deretter endre disse atferdene uten å påvirke koden til forretningslogikken.
Publisert på 15.03.2023 11:11:04 |
zsdfghjkvbjnm
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com