クラス AbstractNamedValueArgumentResolver

java.lang.ObjectSE
org.springframework.web.reactive.result.method.HandlerMethodArgumentResolverSupport
org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver
実装されたすべてのインターフェース:
HandlerMethodArgumentResolver
既知の直属サブクラス
AbstractNamedValueSyncArgumentResolverSessionAttributeMethodArgumentResolver

public abstract class AbstractNamedValueArgumentResolver extends HandlerMethodArgumentResolverSupport
名前付き値からメソッド引数を解決するための抽象基本クラス。リクエストパラメーター、リクエストヘッダー、パス変数は、名前付き値の例です。それぞれに名前、必須フラグ、デフォルト値を含めることができます。

サブクラスは、次の方法を定義します。

  • メソッドパラメーターの名前付き値情報を取得する
  • 名前を引数値に解決する
  • 引数値が必要なときに欠落している引数値を処理する
  • オプションで解決された値を処理する

デフォルト値の文字列には、${...} プレースホルダーと Spring 式言語 #{...} 式を含めることができます。これを機能させるには、ConfigurableBeanFactory をクラスコンストラクターに指定する必要があります。

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

    • AbstractNamedValueArgumentResolver

      public AbstractNamedValueArgumentResolver(@Nullable ConfigurableBeanFactory factory, ReactiveAdapterRegistry registry)
      新しい AbstractNamedValueArgumentResolver インスタンスを作成します。
      パラメーター:
      factory - デフォルト値の ${...} プレースホルダーと #{...} SpEL 式を解決するために使用する Bean ファクトリ、またはデフォルト値に式が含まれることが予期されていない場合は null 
      registry - リアクティブ型ラッパーのチェック用
  • メソッドの詳細

    • resolveArgument

      public reactor.core.publisher.Mono<ObjectSE> resolveArgument(MethodParameter parameter, BindingContext bindingContext, ServerWebExchange exchange)
      インターフェースからコピーされた説明: HandlerMethodArgumentResolver
      メソッドパラメーターの値を解決します。
      パラメーター:
      parameter - メソッドパラメーター
      bindingContext - 使用するバインディングコンテキスト
      exchange - 現在の交換
      戻り値:
      引数値の Mono、おそらく空
    • createNamedValueInfo

      protected abstract AbstractNamedValueArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
      指定されたメソッドパラメーターの AbstractNamedValueArgumentResolver.NamedValueInfo オブジェクトを作成します。実装は通常、MethodParameter.getParameterAnnotation(Class) を使用してメソッドアノテーションを取得します。
      パラメーター:
      parameter - メソッドパラメーター
      戻り値:
      名前付き値の情報
    • resolveName

      protected abstract reactor.core.publisher.Mono<ObjectSE> resolveName(StringSE name, MethodParameter parameter, ServerWebExchange exchange)
      指定されたパラメーターの型と値の名前を引数の値に解決します。
      パラメーター:
      name - 解決される値の名前
      parameter - 引数値に解決するメソッドパラメーター (OptionalSE 宣言の場合は事前ネスト)
      exchange - 現在の交換
      戻り値:
      解決された引数 (空の Mono の可能性があります)
    • handleMissingValue

      protected void handleMissingValue(StringSE name, MethodParameter parameter, ServerWebExchange exchange)
      名前付き値が必要であるが、resolveName(String, MethodParameter, ServerWebExchange) が null を返し、デフォルト値がない場合に呼び出されます。この場合、サブクラスは通常、例外をスローします。
      パラメーター:
      name - 値の名前
      parameter - メソッドパラメーター
      exchange - 現在の交換
    • handleMissingValue

      protected void handleMissingValue(StringSE name, MethodParameter parameter)
      名前付き値が必要であるが、resolveName(String, MethodParameter, ServerWebExchange) が null を返し、デフォルト値がない場合に呼び出されます。この場合、サブクラスは通常、例外をスローします。
      パラメーター:
      name - 値の名前
      parameter - メソッドパラメーター
    • handleResolvedValue

      protected void handleResolvedValue(@Nullable ObjectSE arg, StringSE name, MethodParameter parameter, Model model, ServerWebExchange exchange)
      値が解決された後に呼び出されます。
      パラメーター:
      arg - 解決された引数値
      name - 引数名
      parameter - 引数パラメーターの型
      model - モデル
      exchange - 現在の交換