Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 28258|Risposta: 2

[Fonte] Funzionamento pratico: AOP in Spring Boot modifica dinamicamente il valore del parametro di richiesta

[Copiato link]
Pubblicato su 06/11/2021 12:15:55 | | | |
Requisiti: Il progetto deve modificare dinamicamente i parametri della richiesta, assegnare i valori ai parametri della richiesta secondo i permessi dell'utente corrente, prima che i parametri entrino nel metodo controller, deve essere completata la modifica dei parametri della richiesta e, quando il controller chiama il livello di servizio, i parametri della richiesta possono essere utilizzati come condizioni per interrogare e modificare i dati. Ci sono due casi di parametri di richiesta:

  • Per gli utenti con privilegi elevati, puoi utilizzare i valori effettivamente richiesti dei parametri
  • Per le persone con permessi solo parziali, i valori dei parametri di richiesta vengono modificati dinamicamente in base alle informazioni legate all'utente corrente


All'inizio volevo implementarlo tramite un filtro, ma era troppo macchinoso serializzare e deserializzare il contenuto delle richieste, e richiedeva anche molto giudizio logico e perdita di prestazioni. Fortunatamente, Spring offre funzionalità AOP orientata ai volti, che può essere implementata con codice semplice.

Prima di tutto, il progetto Maven pom.xml deve introdurre il pacchetto spring-boot-starter-aop, come segue:

Una volta introdotto il pacchetto, possiamo utilizzare la funzione AOP, tramite@Aspectannotazione.

Aspect supporta 5 tipi di annotazioni di notifica:

@Before: Pre-notifica, che viene eseguita prima che il metodo venga eseguito

@After: Post-notifica, eseguita dopo l'esecuzione del metodo

@AfterRunning: Restituisce una notifica, che viene eseguita dopo che il metodo restituisce un risultato

@AfterThrowing: Notifica eccezione, dopo che il metodo ha lanciato un'eccezione

@Around: Notifiche wraparound, circa l'esecuzione del metodo

Crea una Request.java classe generica di richieste:

Crea una nuova classe di dati UserInfo.java richiedi specifica:

Se l'intestazione della richiesta corrente ha un appid, il valore del parametro di richiesta appId verrà modificato, altrimenti il parametro di richiesta non sarà modificato, il codice è il seguente:

Crea un nuovo controller HomeController e aggiungi un'interfaccia con un parametro richiesta contenente Request<UserInfo>, il codice è il seguente:

Nel caso di test senza l'intestazione di richiesta appId, il parametro di richiesta appId è il valore effettivo e non è stato modificato, come mostrato nella figura seguente:



Se provi ad aggiungere l'intestazione di richiesta appId, puoi vedere che il parametro di richiesta appId è stato modificato con successo, come mostrato nella figura seguente:



Infine, allega il codice sorgente:Il login del link ipertestuale è visibile.





Precedente:Usa iPerf3 per testare le velocità di comunicazione di rete dei dispositivi
Prossimo:Installa il software iDRAC Service Module su VMware ESXi
 Padrone di casa| Pubblicato su 06/11/2021 12:21:32 |
In Spring AOP, la logica di business si concentra solo sull'azienda stessa, dividendo la registrazione, le statistiche di prestazione, il controllo della sicurezza, l'elaborazione delle transazioni, la gestione delle eccezioni, ecc. dal codice della logica aziendale, e separando questi comportamenti, speriamo di poterli separare in metodi che non guidano la logica di business, per poi modificare questi comportamenti senza influenzare il codice della logica aziendale.
Pubblicato su 15/03/2023 11:11:04 |
zsdfghjkvbjnm
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com