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.2. 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).
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
1. 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!