Cet article introduit l'utilisation des intercepteurs dans Spring-Boot. Ils gèrent généralement le traitement du domaine transversal dans les intercepteurs, permettant un accès entre domaine aux projets. Pour des informations détaillées sur l'utilisation des intercepteurs, veuillez vous référer au site officiel.
Étapes pour implémenter un intercepteur personnalisé:
1. Créez une classe et implémentez l'interface HandlerInterceptor.
2. Créez une classe Java pour hériter de WebMVCConfigurerAdapter et remplacer la méthode AddInterceptors.
2. Remettez l'intercepteur personnalisé à la gestion de Spring, puis ajoutez manuellement l'objet à la chaîne d'intercepteur (ajoutez la méthode AddInterceptors).
Créer une classe d'interceptor
package com.example.springboot.config.intercepter; import org.springframework.sterereotype. javax.servlet.http.httpservletResponse; / ** * @desc interceptor personnalisé, utilisez @component pour laisser le printemps gérer son cycle de vie * @Author Wangsh * @Date 2018/5/6 17:06 * @return * / @ componentPublic Class Prehandle (httpleterceptor {@Override Boolean demande, réponse httpsservletResponse, gestionnaire d'objets) lève une exception {System.out.println (">>> pré-halte >>>>>>>>>>> Appel avant le traitement de la demande (avant l'appel de la méthode du contrôleur)"); setCrossDomain (réponse); return true; // Seule lorsque True Returns continuera d'exécuter vers le bas, renvoyez false pour annuler la demande actuelle} @Override public void Posthandle (HttpServletRequest Request, httpservletResponse Response, Object Handler, ModelandView ModelAndView lance l'exception {// appelle après la demande traitée, mais avant que la vue ne soit renforcée (après la méthode du contrôleur); System.out.println (">>> PostHandle >>>>>>>>>>>>>>>> Appel après le traitement de la demande, mais avant que la vue ne soit rendue (une fois la méthode du contrôleur appelé)"); } @Override public void afterCompletion (requête HttpServletRequest, réponse httpservletResponse, gestionnaire d'objets, exception ex) lève une exception {// appelée après la fin de la demande, c'est-à-dire exécutée après que le Dispatterservlet a rendu la vue correspondante (principalement pour le nettoyage des ressources); System.out.println (">>> Posthandle >>>>>>>>>>>>>>> est appelé après la fin de la demande entière, c'est-à-dire, après que le DispatcherServlet a rendu la vue correspondante (principalement pour le nettoyage des ressources)"); } / ** * @param @param Fichier de paramètre de réponse * @return void return type * @throws * @title: setCrossDomain * @Description: TODO (set Cross-Domain Problem) * / private void SetCrossDomain (httpServletResponse Response) {Response.Addheader ("Access-Control-Allow-Origin", "*"); Response.Addheader ("Access-Control-Allow-Methods", "Post, Get"); Response.Addheader ("Access-Control-Allow-Credentials", "True"); }}Ajouter un intercepteur personnalisé à la chaîne d'interceptor
package com.example.springboot.config.config; import com.example.springboot.config.intercepter.testintercepter; import org.springframework.beans.factory.annotation.configure; org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.webmvcconfigureradapter; / ** * Registre Bean * / @ ConfigurationPublic Class interceptorCinired PrivateS TestingInterceptor; @Override public void addInterceptors (InterceptorRegistry Registry) {registry.addinterceptor (TesterInterceptor); }}Créer une classe de contrôleur
package com.example.springboot.config.conroller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.restController; @ restController @ requestmapping ("/ user") public useerController {@requestmapping (") public land bonjour () {return "bonjour"; }}Créer une classe de service de démarrage
package com.example.springboot.config; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootapplication; @springbootapplicationpublic class SpringbootConfigApplication {public static void Main (String [] args) { SpringApplication.Run (SpringbootConfigApplication.class, Args); }}Commencez le test de service, visitez http: // localhost: 8088 / bonjour dans le navigateur, imprimez le journal comme suit, vous pouvez voir que l'intercepteur est passé.
Résumer
Ce qui précède est une explication détaillée de l'utilisation des intercepteurs de configuration Springboot introduits par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, laissez-moi un message. L'éditeur répondra à tout le monde à temps!