Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 28258|Répondre: 2

[Source] Fonctionnement pratique : AOP dans Spring Boot modifie dynamiquement la valeur du paramètre de requête

[Copié le lien]
Publié sur 06/11/2021 12:15:55 | | | |
Exigences : Le projet doit modifier dynamiquement les paramètres de requête, attribuer des valeurs aux paramètres de requête selon les permissions de l’utilisateur actuel, avant que les paramètres n’entrent dans la méthode contrôleur, la modification des paramètres de requête doit être terminée, et lorsque le contrôleur appelle la couche de service, les paramètres de requête peuvent servir de conditions pour interroger et modifier les données. Il existe deux cas de paramètres de demande :

  • Pour les utilisateurs ayant des privilèges élevés, vous pouvez utiliser les valeurs réelles des paramètres demandés
  • Pour les personnes disposant uniquement d’autorisations partielles, les valeurs des paramètres de requête sont modifiées dynamiquement en fonction des informations liées à l’utilisateur actuel


Au début, je voulais l’implémenter via un filtre, mais il était trop lourd de sérialiser et de désérialiser le contenu de la requête, et cela demandait aussi beaucoup de jugement logique et de perte de performance. Heureusement, Spring offre une fonctionnalité AOP orientée face, qui peut être implémentée avec un code simple.

Tout d’abord, le projet Maven pom.xml doit introduire le package spring-boot-starter-aop, comme suit :

Une fois le package introduit, nous pouvons utiliser la fonctionnalité AOP, en@Aspectannotation.

Aspect prend en charge 5 types d’annotations de notification :

@Before: Pré-notification, qui est exécutée avant l’exécution de la méthode

@After: Post-notification, exécuté après l’exécution de la méthode

@AfterRunning: Retourne une notification, qui est exécutée après que la méthode a rendu un résultat

@AfterThrowing: Notification d’exception, après que la méthode ait lancé une exception

@Around: Notifications de wraparound, exécution de la méthode

Créez une classe de requête générique Request.java wrapper :

Créez une nouvelle classe de données UserInfo.java demandez :

Si l’en-tête de requête actuel a un appid, la valeur du paramètre de requête appId sera modifiée, sinon, le paramètre de requête ne sera pas modifié, le code est le suivant :

Créez un nouveau contrôleur HomeController et ajoutez une interface avec un paramètre requête contenant Request<UserInfo>, le code est le suivant :

Dans le cas des tests sans l’en-tête de requête appId, le paramètre de requête appId est la valeur réelle et n’a pas été modifié, comme montré dans la figure suivante :



Si vous essayez d’ajouter l’en-tête de requête appId, vous pouvez voir que le paramètre de requête appId a été modifié avec succès, comme montré dans la figure suivante :



Enfin, joignez le code source :La connexion hyperlientérée est visible.





Précédent:Utilisez iPerf3 pour tester les vitesses de communication réseau des appareils
Prochain:Installer le logiciel iDRAC Service Module sur VMware ESXi
 Propriétaire| Publié sur 06/11/2021 12:21:32 |
Dans Spring AOP, la logique métier se concentre uniquement sur l’entreprise elle-même, en séparant la journalisation, les statistiques de performance, le contrôle de sécurité, le traitement des transactions, la gestion des exceptions, etc., du code de la logique métier, et en séparant ces comportements, nous espérons pouvoir les séparer en méthodes qui ne guident pas la logique métier, puis modifier ces comportements sans affecter le code de la logique métier.
Publié sur 15/03/2023 11:11:04 |
zsdfghjkvbjnm
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com