Maison  >  Article  >  Java  >  Comment implémenter la fonction d'intercepteur dans Springboot

Comment implémenter la fonction d'intercepteur dans Springboot

WBOY
WBOYavant
2023-05-14 10:55:183536parcourir

Comment implémenter la fonction dintercepteur dans Springboot

preHandle : Pré-traitement, traitement avant l'exécution de la méthode du contrôleur cible

#🎜🎜 # postHandle :

Traité après l'exécution de la méthode du contrôleur cible et avant d'atteindre la page spécifiée

afterCompletion :

Traité après le rendu de la page# 🎜 🎜#

Méthode :

1 Springboot implémente l'intercepteur en implémentant l'interface HandlerInterceptor
#🎜🎜. #2. Implémentez une classe de configuration via WebMvcConfigurer, puis injectez-la dans le conteneur via l'annotation @Configuration

3 Spécifiez les règles d'interception

Prendre la connexion de l'utilisateur comme. un exemple, si si l'utilisateur ne se connecte pas, il n'y aura aucune donnée utilisateur dans la session et l'utilisateur sera redirigé vers la page de connexion de la page d'accueil

Après s'être connecté correctement, la réinscription sera enregistré dans la session. Lorsque vous accédez à nouveau à la page, l'intercepteur de connexion peut être utilisé. Une fois que vous avez trouvé cet objet relister, vous n'avez pas besoin d'intercepter à nouveau l'interface de connexion. Implémentez l'interface WebMvcConfigurer pour implémenter une classe de configuration, injectez l'intercepteur dans. la classe de configuration, et enfin injecter la configuration via l'annotation @Configuration. Et spécifiez le chemin d'interception et le chemin qui doit être libéré

Note :

Interceptor /** interceptera tout. ressources, y compris les ressources statiques. Les ressources statiques doivent être libérées. Scénarios d'application

Comment implémenter la fonction dintercepteur dans Springboot1. ), etc.

2. Vérification des autorisations : comme la détection de connexion, entrez dans le processeur pour détecter si vous êtes connecté, sinon revenez directement à la page de connexion Comment implémenter la fonction dintercepteur dans Springboot

3. : Parfois, le système est en Si une certaine période de temps est inexplicablement lente, vous pouvez utiliser l'intercepteur pour enregistrer l'heure de début avant d'entrer dans le processeur et enregistrer l'heure de fin après le traitement, afin d'obtenir le temps de traitement de la demande ( s'il existe un proxy inverse, comme Apache, il peut être automatiquement enregistré); # 🎜🎜#

4. Comportement général : lire le cookie pour obtenir les informations de l'utilisateur et mettre l'objet utilisateur dans la requête, afin de faciliter l'utilisation ultérieure du processus, ainsi que l'extraction des informations de paramètres régionaux et de thème, etc., dans la mesure où elles sont nécessaires à plusieurs processeurs. Cela peut être réalisé à l'aide d'intercepteurs.

5. OpenSessionInView : comme Hibernate, ouvrez la SESSION avant d'entrer dans le processeur et fermez la SESSION une fois terminée.

La différence entre les intercepteurs et les filtres

Comment implémenter la fonction dintercepteur dans Springboot

1 Les intercepteurs sont basés sur le mécanisme de réflexion de Java, tandis que les filtres sont basés sur des rappels de fonctions.

2. L'intercepteur ne dépend pas du conteneur de servlet, mais le filtre dépend du conteneur de servlet.

3. Les intercepteurs ne peuvent fonctionner que sur les requêtes ACTION, tandis que les filtres peuvent fonctionner sur presque toutes les requêtes.

4. Les intercepteurs peuvent accéder aux objets dans le contexte ACTION et la pile de valeurs, mais pas les filtres.

5. Dans le cycle de vie d'ACTION, l'intercepteur peut être appelé plusieurs fois, mais le filtre ne peut être appelé qu'une seule fois lorsque le conteneur est initialisé.

6. L'intercepteur peut obtenir chaque bean dans le conteneur IOC, mais le filtre ne le peut pas. L'injection d'un service dans l'intercepteur peut appeler une logique métier.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer