WebMvc Configuration Support 계승 후 자동 설정 이 적용 되 지 않 으 며 차단 기 를 설정 하 는 방법

인터넷 에는 spring boot 2.0 이후 spring 프로필 을 구성 할 때 WebMvcConfiguration Support 를 직접 실현 하거나 WebMvcConfiguration Support 를 직접 계승 하 는 것 을 권장 하 는 글 이 많 습 니 다.테스트 를 통 해 WebMvcConfiguration Support 를 실현 하 는 것 은 문제 가 없 지만 WebMvcConfiguration Support 류 를 계승 하 는 것 은 자동 설정 이 실 효 될 수 있 습 니 다.
1.WebMvcConfigurationSupport 클래스 를 계승 하 는 것 은 자동 설정 이 실 효 될 수 있 는 원인 입 니 다.
spring boot 의 사용자 정의 설정 클래스 에서 WebMvcConfigurationSupport 를 계승 한 후 자동 으로 설 정 된 정적 자원 경로(classpath:/META/resources/,classpath:/resources/,classpath:/static/,classpath:/public/)가 유효 하지 않 습 니 다.
우선 자동 설정 클래스 의 정 의 를 보십시오.

springboot 의 웹 자동 설정 클래스 WebMvcAutoConfiguration 에 조건 부 설명 이 있 기 때 문 입 니 다.

@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
이 주 해 는 프로젝트 클래스 경로 에 WebMvcConfigurationSupport 형식의 bean 이 없 을 때 자동 설정 클래스 를 바 꿔 야 효력 이 발생 하기 때문에 WebMvcConfigurationSupport 를 계승 한 후 해당 하 는 방법 을 다시 써 야 한 다 는 뜻 입 니 다.
자동 설정 을 사용 하려 면 필요 에 따라 몇 가지 방법 을 다시 써 야 합 니 다.예 를 들 어 view Controller 를 추가 하면 자신의 설정 류 는 WebMvcConfigurerAdapter 라 는 종 류 를 계승 할 수 있 습 니 다.그러나 spring 5.0 버 전 이후 이 종 류 는 WebMvcConfigurer Adapter 를 버 렸 습 니 다.아직 사용 할 수 있 지만 보기 에는 좋 지 않 습 니 다.

이것 은 클래스 의 주석 입 니 다.spring 5.0 이후 자바 8 을 사용 해 야 한 다 는 뜻 입 니 다.자바 8 의 인 터 페 이 스 는 default 방법 이 있 을 수 있 기 때문에 이 클래스 는 필요 없습니다.그래서 저 희 는 사용자 정의 설정 클래스 에서 직접 실현 해 야 합 니 다.
2.WebMvcConfigurationSupport 클래스 를 계승 하여 차단 기 를 어떻게 설정 합 니까?

@Configuration
public class MyConfigurer extends WebMvcConfigurationSupport {
 
@Override
 protected void addInterceptors(InterceptorRegistry registry) {
  registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/emp/toLogin","/emp/login","/js/**","/css/**","/images/**");
  super.addInterceptors(registry);
 }
 
 @Override
 protected void addResourceHandlers(ResourceHandlerRegistry registry) {
  registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
  super.addResourceHandlers(registry);
 }
}
이 코드 주의:

registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
WebMvcConfigurationSupport 를 계승 하면 자동 설정 이 실 효 될 수 있 기 때문에 기본 정적 자원 의 위 치 를 지정 해 야 합 니 다.동시에 쓰 지 않도록 주의해 야 한다.

registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기