2017-09-27 14 views
0

에서 WebMvcConfigurationSupport를 사용하는 방법은 WebMvcConfigurationSupport을 연장하는 @Configuration 클래스를 가진 요구하는 FormattingConversionService를 통해 Converter의를 추가 할 프로젝트에서 직접 생성하지만이 논리를 우리 자신의 boot-starter에 추가해야하므로 프로젝트 전체에 코드를 복제 할 필요가 없습니다. 이 @Configuration (즉 더 요청이 올바르게 매핑되지 않음) 한 후, 스타터 프로젝트에 마이그레이션 자신의 자동 구성

  • mvcConversionService()

    가 실행되지 않으며,
  • RestControllers 라우팅이 깨진 경우

    문제이다.

어떻게 접근합니까? WebMvcConfigurationSupport을 사용하는 것은 어려운 요구 사항이 아닙니다. 코드 발췌에서 알 수 있듯이 최종 목표는 나머지 컨트롤러가 대소 문자를 구분하지 않도록 특정 열거 형을 구성하는 것입니다.

편집 : WebAutoConfig.java와 같은 패키지에있는 다른 @Configuration 클래스가 실행됨에 따라 자동 구성 프로젝트가 올바르게 설정되어 있는지 추가해야합니다. 이 문제는 WebMvcConfigurationSupport (또는 해당 문제의 경우 WebMvcConfigurerAdapter)을 확장하는 구성 클래스가 auto-configs에서 처리되는 방식과 관련이 있다고 생각하십시오.

Edit2가는 : 유일한 방법은 내가 지금까지 사용하여 프로젝트에서 설정 클래스를 확장하고 일하러 가야 관리했습니다 :

import myautoconfproject.autoconfigure.WebAutoConfiguration; 

@Configuration 
public class WebConfiguration extends WebAutoConfiguration { 
} 

하지만 더 이상 정말 자동 구성 아니다.

구성이 의존성 등의 프로젝트를 포함하는 프로젝트를 자동으로 선택받을하기 위해서는
+0

CONDIT 이외의 자신의 스타터를 구현하는 실제 마술 없다 그것의 이온 부하. 구성이 초보자가 구성 요소를 스캔하게 될 것이라고 확신합니까? –

+0

@DarrenForsythe 예, autoconfig 진입 점에'@ ComponentScan'이 포함되어 있으므로 확실히 선택했습니다. 또한 실행중인 동일한 패키지에 다른 '@ Configuration' 클래스가 있습니다. – laur

답변

0

은 분명히 내가 WebMvcConfigurerAdapter에 대해 잘못 - 하나는 자동 구성에 의해 선택됩니다 : 초보자의 설정은 무엇

@Configuration 
public class WebAutoConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addFormatters(final FormatterRegistry registry) { 

     registry.addConverter(
       String.class, 
       MyEnum.class, 
       new EnumCaseInsensitiveConverter<>(MyEnum.class) 
     ); 
    } 
} 
0

, 당신은 라인을 프로젝트에 (클래스 패스에 파일 META-INF/spring.factories을 추가 할 경우 WebAutoConfig 거짓말과 추가 할 필요가

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 
your.package.WebAutoConfig 
+0

그건 문제가되지 않습니다. 'EnableAutoConfiguration' 진입 점은 autoconfig 프로젝트의 다른 클래스를 가리키는'spring.factories'에 이미 설정되어 있습니다.'WebAutoConfig'를 포함하여 다른'@ Configuration' 클래스를 가리키는'@ ComponentScan'을 포함합니다. 질문 아래 내 의견을 참조하십시오. 내가 말할 수있는 한,이 문제는 자동 구성에서 'WebMvcConfigurerAdapter'를 사용하는 방법처럼 보입니다. – laur