クラス ContentNegotiationConfigurer

java.lang.ObjectSE
org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer

public class ContentNegotiationConfigurer extends ObjectSE
ContentNegotiationManager を作成し、1 つ以上の ContentNegotiationStrategy インスタンスで構成します。

このファクトリは、基礎となる戦略を構成するプロパティを提供します。以下の表は、プロパティ名、デフォルト設定、設定に役立つ戦略を示しています。

プロパティ Setter デフォルト値 基礎戦略 有効または無効
favorParameter(boolean)falseParameterContentNegotiationStrategy オフ
ignoreAcceptHeader(boolean)falseHeaderContentNegotiationStrategy 使用可能
defaultContentType(MediaType...)nullFixedContentNegotiationStrategy オフ
defaultContentTypeStrategy(ContentNegotiationStrategy)nullContentNegotiationStrategy オフ

5.0 の時点で、strategies(List) を使用して正確な戦略を設定できます。

導入:
3.2
作成者:
Rossen Stoyanchev
  • コンストラクターの詳細

    • ContentNegotiationConfigurer

      public ContentNegotiationConfigurer()
  • メソッドの詳細

    • strategies

      public void strategies(@Nullable ListSE<ContentNegotiationStrategy> strategies)
      使用する戦略の正確なリストを設定します。

      注意 : このメソッドの使用は、デフォルトの固定された戦略セットをカスタマイズするこのクラスの他のすべての setter の使用と相互に排他的です。詳細については、クラスレベルのドキュメントを参照してください。

      パラメーター:
      strategies - 使用する戦略
      導入:
      5.0
    • favorParameter

      public ContentNegotiationConfigurer favorParameter(boolean favorParameter)
      リクエストされたメディア型を判別するためにリクエストパラメーター(デフォルトでは「フォーマット」)を使用する必要があるかどうか。このオプションを機能させるには、media type mappings を登録する必要があります。

      デフォルトでは、これは false に設定されています。

      関連事項:
    • parameterName

      public ContentNegotiationConfigurer parameterName(StringSE parameterName)
      favorParameter(boolean) がオンのときに使用するクエリパラメーター名を設定します。

      デフォルトのパラメーター名は "format" です。

    • mediaType

      public ContentNegotiationConfigurer mediaType(StringSE extension, MediaType mediaType)
      パス拡張またはクエリパラメーターから抽出されたキーからのマッピングを MediaType に追加します。これは、パラメーター戦略が機能するために必要です。ここで明示的に登録された拡張機能も、Reflected File Download 攻撃検出の目的で安全として扱われます(RFD 攻撃保護の詳細については、Spring Framework リファレンスドキュメントを参照してください)。

      パス拡張戦略では、パス拡張を解決するために ServletContext.getMimeType(String) と MediaTypeFactory も使用しようとします。この動作を変更するには、useRegisteredExtensionsOnly(boolean) プロパティを参照してください。

      パラメーター:
      extension - 見上げる鍵
      mediaType - メディア型
      関連事項:
    • mediaTypes

    • replaceMediaTypes

      public ContentNegotiationConfigurer replaceMediaTypes(MapSE<StringSE, MediaType> mediaTypes)
      mediaType(String, MediaType) に似ていますが、既存のマッピングを置き換えるためのものです。
      関連事項:
    • useRegisteredExtensionsOnly

      public ContentNegotiationConfigurer useRegisteredExtensionsOnly(boolean useRegisteredExtensionsOnly)
      favorParameter(boolean) が設定されている場合、このプロパティは、登録された MediaType マッピングのみを使用して特定の MediaType へのパス拡張を解決するかどうかを決定します。

      デフォルトでは、これは設定されていません。その場合、ParameterContentNegotiationStrategy は、使用可能な場合はデフォルトを使用します。

    • ignoreAcceptHeader

      public ContentNegotiationConfigurer ignoreAcceptHeader(boolean ignoreAcceptHeader)
      "Accept" リクエストヘッダーのチェックを無効にするかどうか。

      デフォルトでは、この値は false に設定されています。

    • defaultContentType

      public ContentNegotiationConfigurer defaultContentType(MediaType... defaultContentTypes)
      コンテンツ型が優先度順にリクエストされない場合に使用するデフォルトのコンテンツ型を設定します。

      指定されたメディア型のいずれもサポートしない宛先が存在する場合、最後に MediaType.ALL を追加することを検討してください。

      デフォルトでは、これは設定されていません。

      関連事項:
    • defaultContentTypeStrategy

      public ContentNegotiationConfigurer defaultContentTypeStrategy(ContentNegotiationStrategy defaultStrategy)
      コンテンツ型がリクエストされていないときに使用するコンテンツ型を決定するために使用するカスタム ContentNegotiationStrategy を設定します。

      デフォルトでは、これは設定されていません。

      導入:
      4.1.2
      関連事項:
    • buildContentNegotiationManager

      protected ContentNegotiationManager buildContentNegotiationManager()
      この設定の設定に基づいて ContentNegotiationManager を構築します。
      導入:
      4.3.12
      関連事項: