이 기사는 스프링 부팅에서 인터셉터 사용을 소개합니다. 그들은 일반적으로 인터셉터에서 크로스 도메인 처리를 처리하여 프로젝트에 대한 크로스 도메인 액세스를 허용합니다. 인터셉터 사용에 대한 자세한 정보는 공식 웹 사이트를 참조하십시오.
사용자 정의 인터셉터를 구현하기위한 단계 :
1. 클래스를 만들고 핸들러 인터셉터 인터페이스를 구현하십시오.
2. webmvcconfigureradapter를 상속하기 위해 Java 클래스를 작성하고 AddInterceptors 메소드를 무시합니다.
2. 사용자 정의 인터셉터를 스프링 관리에 넘겨 준 다음 인터셉터 체인에 객체를 수동으로 추가하십시오 (Addinterceptors 메소드 추가).
인터셉터 클래스를 만듭니다
package com.example.springboot.config.intercepter; import org.springframework.stereotyp.component; import org.springframework.web.servlet.handlerinterceptor; import org.springframework.web.servlet.modelandview; import javax.servlet.htttrequest.httpervletretrepest.httpervletretrepest.httpervletretrepest.httpertrepest.httpertrepest javax.servlet.http.httptp.httpervletresponse;/** * @desc 사용자 정의 인터셉터, @component를 사용하여 Spring을 사용하여 수명주기를 관리하도록하십시오 * @author wangsh * @date 2018/5/6 17:06 * @return */ @componentpublic class testintercepter testintercepter handler interceptor {hortpleter reforting v (holean bolean) httpservletresponse 응답, 객체 핸들러)는 예외 {system.out.println ( ">>> prehandle >>>>>>>>>>> 요청 처리 전에 호출 (컨트롤러 메소드 호출 전)"); setcrossdomain (응답); true; // true returns가 아래쪽으로 계속 실행될 때만, 현재 요청을 취소하기 위해 False} @override public void posthandle (httpservletrequest request, httpservletreponse 응답, 개체 핸들러, ModelandView ModelView) 예외 {// 요청이 처리되기 전에 (컨트롤러 방법이 호출되기 전에); System.out.println ( ">>> Posthandle >>>>>>>>>>>>>>>>> 요청이 처리 된 후 호출하지만 뷰가 렌더링되기 전에 (컨트롤러 메소드가 호출 된 후)"); } @override public void afthCompletion (httpservletrequest 요청, httpservletreponse 응답, 객체 처리기, 예외)은 예외를 {// 전체 요청이 끝난 후에 호출됩니다. 즉, DispatcherServlet가 해당 뷰를 렌더링 한 후 (주로 리소스 청소용); System.out.println ( ">>> posthandle >>>>>>>>>>>>>>> 전체 요청이 종료 된 후, 즉 Dispatcherservlet이 해당보기 (주로 자원 청소용)를 렌더링 한 후"); } / *** @param @param 응답 설정 파일* @return void return return 유형* @throws* @title : setcrossdomain* @description : todo (set cross-domain 문제)* / private void setcrossdomain (httpservletresponse 응답) {response.addheader ( "access-control-allow-origin", "); response.addheader ( "Access-Control-allow-Methods", "Post, Get"); response.addheader ( "Access-Control-allow-Credentials", "True"); }}인터셉터 체인에 사용자 정의 인터셉터를 추가하십시오
package com.example.springboot.config.config; import com.example.springboot.config.intercepter.testintercepter; import org.spramframework.beans.beans.annotation.autowired; import org.spramework.context.annotation.configuration; import org.springframework.web.servlet.config.annotation.interceptorregistry; import org.springframework.web.servlet.config.annotation.webmvcconfigureradapter;/** * regge bean */ @configurationpublic class interceptorconfig webmcconfigureradapter extrenst webmcconfigeratewered Testinterceptor; @override public void addinterceptors (interceptorregistry registry) {registry.addinterceptor (testinterceptor); }}컨트롤러 클래스를 만듭니다
package com.example.springboot.config.conroller; import org.springframework.bind.annotation.requestmapping; import org.sprameframework.bind.annotation.restcontroller;@restcontroller@"/user") public class usercontroller {@requeStmapped (@requeStmappe) hello () {return "Hello"; }}스타트 업 서비스 클래스를 만듭니다
package com.example.springboot.config; import org.springframework.springApplication; import org.springframework.boot.autoconfigure.springbootApplication; @springbootapplicationpublic springbootconfigappication {public void min (string] {args) { SpringApplication.run (SpringBootConfigApplication.class, args); }}서비스 테스트를 시작하고 http : // localhost : 8088/hello를 방문하여 브라우저에서 다음과 같이 로그를 인쇄하면 인터셉터가 통과되었음을 알 수 있습니다.
요약
위는 편집기가 소개 한 SpringBoot 구성 인터셉터 사용에 대한 자세한 설명입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨주세요. 편집자는 제 시간에 모든 사람에게 답장 할 것입니다!