Este artigo apresenta o uso de interceptores no Spring-Boot. Eles geralmente lidam com o processamento de domínio cruzado nos interceptores, permitindo acesso de domínio cruzado a projetos. Para obter informações detalhadas sobre o uso de interceptores, consulte o site oficial.
Etapas para implementar um interceptador personalizado:
1. Crie uma classe e implemente a interface HandlerInterceptor.
2. Crie uma classe Java para herdar WebMVCConfigureRAdApter e substituir o método AddIntercepts.
2. Entregue o interceptador personalizado ao gerenciamento da mola e adicione manualmente o objeto à cadeia interceptadora (adicione o método AddIntercepts).
Crie uma aula de interceptores
pacote com.example.springboot.config.intercepter; importar org.springframework.stereotype.component; importar org.springframework.web.servlet.modlandVletLeVletLeVletL.Serg.SpringFramework.web.servlet.modlandView; importlet.Servlet.Serg.springFramework.web.servlet.modlandView; javax.servlet.http.httpServletResponse;/** * @DESC Interceptor personalizado, use @Component para permitir que a primavera gerencie seu ciclo de vida * @author wangsh * @date 2018/5/6 17:06 * @return */ @componentpublic Class Classe TESTERCENTREMPLEMENTES Handlestor Solicitação, Resposta HttpServLetResponse, manipulador de objeto) lança a exceção {System.out.println (">>> prehandle >>>>>>>>>>>> ligue antes do processamento da solicitação (antes da chamada do método do controlador)"); setCrossDomain (resposta); Retorne true; // somente quando os retornos verdadeiros continuarão a executar para baixo, retornem false para cancelar a solicitação atual} @Override public void PostHandle (solicitação httpSertLeQuest, httpServletResponse a resposta, o manipulador de objetos, o ModelAndView) lança exceção {// APENSIVA APÓS O SOLHE IS PROCESSO, mas antes do view é o que é o visto antes; System.out.println (">>> Postanha >>>>>>>>>>>>>>>> LIGUE APÓS A solicitação for processada, mas antes que a visualização seja renderizada (depois que o método do controlador for chamado)"); } @Override Public void Aftercompletion (solicitação httpServletRequest, resposta HTTPERTLETRESPONSE, manipulador de objetos, exceção ex) lança a exceção {// chamado após o término da solicitação inteira, ou seja, executada após o despachoservlet render a exibição correspondente (principalmente para limpeza de recursos); System.out.println (">>> Postanha >>>>>>>>>>>>>>> é chamado após o término da solicitação inteira, ou seja, depois que o despachoervlet renderiza a visualização correspondente (principalmente para limpeza de recursos)"); } / *** @param @param Resposta Configuração Arquivo* @return void return type* @throws* @title: setCrossDomain* @Description: TODO (Definir problema de domínio cruzado)* / private void setCrossDomain (HttPervletResponse Response), "Response.addHeader (" Access-Contol-call; Response.AddHeader ("Access-Control-Arn-Methods", "Post, Get"); Response.AddHeader ("Access-Control-Alow-Credenciais", "True"); }}Adicione um interceptador personalizado à cadeia interceptadora
pacote com.example.springboot.config.config; import com.example.springboot.config.intercepter.testintercepter; importar org.springframework.beans.factory.annotation.autowired; importar org.springframework.Context.annotation.port.mport; org.springframework.web.servlet.config.annotation.interceptregistry; importar org.springframework.web.servlet.config.annotation.webmvcconfigureRAdApter;/** * Registro Weban */ @configurationPublic Class interceptorStConF Testinterception teseInterceptor; @Override public void addinterceptores (Registro de InterceptorRegistry) {Registry.addinterceptor (TestInterceptor); }}Criar classe de controlador
pacote com.example.springboot.config.conroller; importar org.springframework.web.bind.annotation.requestmapping; importar org.springframework.web.bind.annotation.restController; olá () {return "hello"; }}Crie uma aula de serviço de inicialização
pacote com.example.springboot.config; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbootapplication; @springbootApplication Classe SpringbootconfigApplication {public stain) SpringApplication.run (springbootconfigApplication.class, args); }}Inicie o teste de serviço, visite http: // localhost: 8088/olá no navegador, imprima o log da seguinte forma, você pode ver que o interceptador passou.
Resumir
O exposto acima é uma explicação detalhada do uso de interceptores de configuração de troca introduzidos pelo editor. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem. O editor responderá a todos a tempo!