2017-09-27 20 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

あなたのスターターのセットアップは何コンディット以外の独自のスターターを実装するには本当の黒魔術は、ありません?それのイオン負荷。コンフィギュレーションがあなたのスターターによってコンポーネントスキャンされることは確実ですか? –

+0

@DarrenForsytheはい、それはautoconfigエントリポイントに '@ ComponentScan'が含まれているので確かに選択されます。同じパッケージには、実行中の他の '@ Configuration'クラスもあります。 – laur

答えて

0
を追加する必要があります

どうやら私はWebMvcConfigurerAdapterについて間違っていた - 1が自動設定によってピックアップされていること:

@Configuration 
public class WebAutoConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addFormatters(final FormatterRegistry registry) { 

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

設定が依存関係としてプロジェクトを含めたプロジェクトのために自動的にピックアップを取得するためには、あなたがWebAutoConfig嘘プロジェクトに(自分のクラスパスにファイルMETA-INF/spring.factoriesを追加し、ラインに

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

それは問題ではありません。 'EnableAutoConfiguration'エントリーポイントはすでに' spring.factories'に設定されています。autoconfigプロジェクト内の別のクラスを指しています。 'WebAutoConfig'を含む' @ Configuration'クラスを指し示す '@ ComponentScan'を含みます。質問の下に私のコメントを参照してください。 問題は、私が知る限り、 'WebMvcConfigurerAdapter'がautoconfigからどのように使用できるかのようです。 – laur

関連する問題