Este artículo presenta el uso de interceptores en Boot Spring. Generalmente manejan el procesamiento de dominio cruzado en interceptores, permitiendo el acceso a los dominios cruzados a los proyectos. Para obtener información detallada sobre el uso de interceptores, consulte el sitio web oficial.
Pasos para implementar un interceptor personalizado:
1. Cree una clase e implemente la interfaz HandlerInterceptor.
2. Cree una clase Java para heredar WebMVCConfigurerAdapter y anular el método AddInterceptors.
2. Entregue el interceptor personalizado a la administración de resorte, y luego agregue manualmente el objeto a la cadena del interceptor (agregue el método adinterceptores).
Crear una clase de interceptor
paquete com.example.springboot.config.intercepter; import org.springframework.stereotype.component; import org.springframework.web.servlet.handlerinterceptor; importar org.springframework.web.servlet.lodelandview; import javest.http.httpsquest; javax.servlet.http.HttpServletResponse;/** * @desc Custom interceptor, use @Component to let Spring manage its life cycle* @Author wangsh * @date 2018/5/6 17:06 * @return */@Componentpublic class TestIntercepter implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest Solicitud, respuesta httpservletResponse, manejador de objetos) lanza la excepción {System.out.println (">>> prehandle >>>>>>>>>>> Llamar antes del procesamiento de solicitudes (antes de la llamada del método del controlador)"); setCrossDomain (respuesta); return true; // Solo cuando las devoluciones verdaderas continuarán ejecutándose hacia abajo, devuelva falso para cancelar la solicitud actual} @Override public void Posthandle (httpservletRequest solicitud, httpServletResponse respuesta, manejador de objetos, modelandview modelandView) lanza la excepción {// llamada después de que se procese la solicitud, pero antes de que se reduzca la vista (después del controlador, después del método de controlador se llama);; System.out.println (">>> Postthandle >>>>>>>>>>>>>>>> llame después de que se procese la solicitud, pero antes de que se represente la vista (después de que se llame el método del controlador)"); } @Override public void AfterCompletion (HttpServletRequest Solicitud, respuesta httpServletResponse, manejador de objetos, excepción ex) lanza una excepción {// llamado después de que termine toda la solicitud, es decir, ejecutada después de que el despachador ofrece la vista correspondiente (principalmente para la limpieza de recursos); System.out.println (">>> Postthandle >>>>>>>>>>>>>> se llama después de que finalice toda la solicitud, es decir, después de que el ProfescherServlet representa la vista correspondiente (principalmente para la limpieza de recursos)"); } / *** @param @param El archivo de configuración de la respuesta* @return void type* @throws* @title: setCrossDomain* @Description: TODO (Set Cross-Domain Problem)* / private void setCrossDomain (httpServletResponse Response) {Respuesta.addHeader ("Access-Control-Allave-Origin", ","* "); Respuesta.AddHeader ("Access-Control-Allow-Methods", "post, get"); Respuesta.AddHeader ("Access-Control-allow-credencials", "verdadero"); }}Agregue un interceptor personalizado a la cadena de interceptor
paquete com.example.springboot.config.config; import com.example.springboot.config.intercepter.testintercepter; import org.springframework.beans.factory.annotation.aUtoWired; import og.springfframework.context.annotation.configuration; import; importar; import org.springframework.web.servlet.config.annotation.interceptoreGristry; testInterceptor; @Override public void addInterceptors (InterceptorRegistry Registry) {Registry.addinterceptor (testInterceptor); }}Crear clase de controlador
paquete com.example.springboot.config.conroller; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.restcontroller;@restcontroller@requestmapping ("/user") clase pública userController {@requiser hola () {return "hello"; }}Crear una clase de servicio de inicio
paquete com.example.springboot.config; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; @springbootapplationPublic de clase springbootcigaplication {public void principal (string string []) {args) {args) {args) SpringApplication.run (SpringBootConfigApplication.Class, Args); }}Inicie la prueba de servicio, visite http: // localhost: 8088/hola en el navegador, imprima el registro de la siguiente manera, puede ver que el interceptor ha pasado.
Resumir
Lo anterior es una explicación detallada del uso de interceptores de configuración Springboot introducidos por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje. ¡El editor responderá a todos a tiempo!