Spring Boot URL 일치 규칙 사용자 정의 방법

2627 단어 springboot
일의 기원: 어떤 사람이 나에게/hello 접근 경로를 작성했다고 물었지만,/hello를 입력하든/hello를 입력하든 상관없다.html, 아니면/hello.xxx는 모두 접근할 수 있다.당시에 나는 그가 코드를 처리한 줄 알았는데, 나중에 아니라는 것을 발견했고, 나중에 이것이 스프링 부트 루트 규칙이라는 것을 발견했다.자, 쓸데없는 말 좀 하자. 그럼 우리가 위에서 초래한 문제를 해결하는 것을 보자.
웹 응용 프로그램을 구축할 때 모든 URL 요청이 기본 규칙을 따르는 것은 아닙니다.때때로 우리는 RESTful URL이 일치할 때 경계표'.'를 포함하기를 희망한다.이 경우 Spring에서 정의된 형식이라고 할 수 있습니다.때때로 우리는 슬래시의 존재를 식별하기를 바란다.Spring은 개발자가 필요에 따라 맞춤형 인터페이스를 제공합니다.
핵심적인 개발 절차는 두 단계이다.
(1) 시작 클래스 extends WebMvcConfigurationSupport
(2) configurePathMatch 메서드를 다시 작성합니다.
구현 코드:

package com.kfit; 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
 
/**
 *
 * @author Angel -- 
 * @version v.0.1
 * @date 2016 7 29 7:06:11
 */
@SpringBootApplication
public class ApiCoreApp extends WebMvcConfigurationSupport{
  
  
  /**
   * 1、 extends WebMvcConfigurationSupport
   * 2、 ;
   * setUseSuffixPatternMatch :  , “/user” /user.*, ;
   * setUseTrailingSlashMatch :  , “/user” “/user/”, ;
   */
  @Override
  publicvoid configurePathMatch(PathMatchConfigurer configurer) {
    configurer.setUseSuffixPatternMatch(false)
          .setUseTrailingSlashMatch(true);
  }
  
  publicstaticvoid main(String[] args) {
    SpringApplication.run(ApiCoreApp.class, args);
  }
}
 

액세스 코드:

  @RequestMapping("/user")
  public String hello(){
    return"/user";
  }
위의 코드에는 두 개의 핵심 코드가 있습니다.
setUseSuffixPatternMatch(boolean useSuffixPatternMatch):
"/user"가/user.* 와 같이 접두사 모드가 일치하는지 설정합니다.기본값은 정렬됩니다.
이 매개 변수가true로 설정되었을 때/user.html,/user.aa,/user.*모두 정상적으로 방문할 수 있다.
이 매개 변수가false로 설정되었을 때,/user 또는/user/에만 접근할 수 있습니다. (이 전제는 setUseTrailingSlashMatch가true로 설정되었다는 것입니다.)
setUseTrailingSlashMatch (boolean useSuffixPatternMatch):
자동 접두사 경로 모드가 일치하는지 설정합니다. 예를 들어'/user'가'/user/'와 일치하는지 설정하면 기본적으로 일치합니다.
이 매개 변수가true로 설정되면 주소/user,/user/모두 정상적으로 접근할 수 있습니다.
이 매개 변수가false로 설정되었을 때,/user에 접근할 수 밖에 없습니다.
상기 두 매개 변수가true로 설정되었을 때, 경로/user 또는/user.aa,/user.*,/user/모두 정상적으로 접근할 수 있지만, 유사/user.html/은(는) 액세스할 수 없습니다.
모두false로 설정되었을 때,/user 경로에 접근할 수 밖에 없습니다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기