Heim  >  Artikel  >  Java  >  So implementieren Sie die Interceptor-Funktion in Springboot

So implementieren Sie die Interceptor-Funktion in Springboot

WBOY
WBOYnach vorne
2023-05-14 10:55:183535Durchsuche

So implementieren Sie die Interceptor-Funktion in Springboot

preHandle: Vorverarbeitung, verarbeitet, bevor die Ziel-Controller-Methode ausgeführt wird

postHandle: Verarbeitet, nachdem die Ziel-Controller-Methode ausgeführt wurde und bevor die angegebene Seite erreicht wird

afterCompletion: Auf der Seite gerendert Verarbeiten Sie es dann

Methode:

1 Springboot implementiert den Interceptor durch Implementierung der HandlerInterceptor-Schnittstelle

2. Implementieren Sie eine Konfigurationsklasse über WebMvcConfigurer und fügen Sie sie dann über die Annotation @Configuration in den Container ein 3. Abfangregeln festlegen

Nehmen Sie die Benutzeranmeldung als Beispiel. Wenn der Benutzer nicht angemeldet ist, sind in der Sitzung keine Benutzerdaten vorhanden und der Benutzer wird zur Anmeldeseite der Startseite weitergeleitet

Nach der korrekten Anmeldung , Speichern Sie den Resister in der Sitzung. Melden Sie sich an. Der Interceptor kann dieses Resister-Objekt finden und es ist nicht erforderlich, die Anmeldeschnittstelle erneut abzufangen Klasse, indem Sie die WebMvcConfigurer-Schnittstelle implementieren, den Interceptor in die Konfigurationsklasse einfügen und schließlich den abgefangenen Pfad und den Pfad angeben, der freigegeben werden muss.

Hinweis:

Interceptor /** wird alle abfangen Ressourcen, einschließlich statischer Ressourcen, statische Ressourcen müssen freigegeben werden. , usw.

So implementieren Sie die Interceptor-Funktion in Springboot2. Berechtigungsprüfung: Geben Sie den Prozessor ein, um zu erkennen, ob Sie angemeldet sind. Wenn nicht, kehren Sie direkt zur Anmeldeseite zurück.

3 Leistungsüberwachung: Manchmal ist das System unerklärlicherweise langsam Zeit können Sie den Interceptor verwenden, um die Startzeit vor dem Eintritt in den Prozessor aufzuzeichnen und die Endzeit nach der Verarbeitung aufzuzeichnen, um die Verarbeitungszeit der Anforderung zu erhalten (wenn ein Reverse-Proxy wie Apache vorhanden ist, kann dieser automatisch aufgezeichnet werden). So implementieren Sie die Interceptor-Funktion in Springboot

4. Allgemeines Verhalten: Cookies lesen, um Benutzerinformationen zu erhalten und das Benutzerobjekt in die Anfrage einzufügen, um den nachfolgenden Prozess zu erleichtern, sowie Gebietsschema- und Themeninformationen usw. zu extrahieren, sofern mehrere Prozessoren dies benötigen Verwenden Sie den Interceptor, um es umzusetzen.

5. OpenSessionInView: Öffnen Sie wie im Ruhezustand die SESSION nach dem Betreten des Prozessors und schließen Sie die SESSION nach Abschluss.

Der Unterschied zwischen Interceptoren und Filtern

So implementieren Sie die Interceptor-Funktion in Springboot1. Interceptoren basieren auf dem Reflexionsmechanismus von Java, während Filter auf Funktionsrückrufen basieren.

2. Der Interceptor ist nicht vom Servlet-Container abhängig, der Filter jedoch vom Servlet-Container. 3. Interceptoren können nur bei ACTION-Anfragen arbeiten, während Filter bei fast allen Anfragen arbeiten können.

4. Interceptoren können auf Objekte im ACTION-Kontext und Wertestapel zugreifen, Filter jedoch nicht.

5. Im Lebenszyklus von ACTION kann der Interceptor mehrmals aufgerufen werden, der Filter kann jedoch nur einmal aufgerufen werden, wenn der Container initialisiert wird.

6. Der Interceptor kann jede Bean im IOC-Container abrufen, der Filter kann jedoch nicht die Geschäftslogik aufrufen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Interceptor-Funktion in Springboot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen