クラス InvocableShellMethod

java.lang.ObjectSE
org.springframework.shell.command.invocation.InvocableShellMethod

public class InvocableShellMethod extends ObjectSE
メソッドBean で構成されるハンドラーメソッドに関する情報をカプセル化します。メソッドのパラメーター、メソッドの戻り値、メソッドのアノテーションなどへの便利なアクセスを提供します。

クラスは、Bean インスタンスまたは Bean 名 (例: lazy-init Bean、プロトタイプ Bean) で作成できます。createWithResolvedBean() を使用して、関連付けられた BeanFactory によって解決された Bean インスタンスを持つ HandlerMethod インスタンスを取得します。

  • ネストされたクラスの要約

    ネストされたクラス
    修飾子と型
    クラス
    説明
    protected class
    HandlerMethod 固有の動作を持つ MethodParameter。
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final org.slf4j.Logger
    フォールバックロガーでラップするためのパブリック。
  • コンストラクターの概要

    コンストラクター
    修飾子
    コンストラクター
    説明
    Bean インスタンスとメソッドからインスタンスを作成します。
    InvocableShellMethod(ObjectSE bean, StringSE methodName, ClassSE<?>... parameterTypes)
    Bean インスタンス、メソッド名、パラメーター型からインスタンスを作成します。
    InvocableShellMethod(StringSE beanName, org.springframework.beans.factory.BeanFactory beanFactory, MethodSE method)
    Bean 名、メソッド、BeanFactory からインスタンスを作成します。
    protected
    サブクラスで使用するコンストラクターをコピーします。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected void
    assertTargetBean(MethodSE method, ObjectSE targetBean, ObjectSE[] args)
    ターゲット Bean クラスが、指定されたメソッドが宣言されているクラスのインスタンスであることをアサートします。
    提供されたインスタンスにオブジェクトインスタンスではなく Bean 名が含まれる場合、InvocableShellMethod が作成されて返される前に、Bean 名が解決されます。
    protected ObjectSE
    指定された引数値でハンドラーメソッドを呼び出します。
    boolean
    protected static ObjectSE
    findProvidedArgument(org.springframework.core.MethodParameter parameter, ObjectSE... providedArgs)
    protected static StringSE
    formatArgumentError(org.springframework.core.MethodParameter param, StringSE message)
    protected StringSE
    このハンドラーメソッドの Bean を返します。
    このメソッドは、このハンドラーメソッドのハンドラーの型を返します。
    protected MethodSE
    Bean メソッドがブリッジメソッドである場合、このメソッドはブリッジ(ユーザー定義)メソッドを返します。
    このハンドラーメソッドのメソッドを返します。
    <A extends AnnotationSE>
    A
    getMethodAnnotation(ClassSE<A> annotationType)
    指定されたメソッド自体にアノテーションが見つからない場合、そのスーパーメソッドをトラバースする基礎となるメソッドに単一のアノテーションを返します。
    protected ObjectSE[]
    getMethodArgumentValues(org.springframework.messaging.Message<?> message, ObjectSE... providedArgs)
    現在のメッセージのメソッド引数値を取得し、提供された引数値を確認して、構成された引数リゾルバーにフォールバックします。
    org.springframework.core.MethodParameter[]
    このハンドラーメソッドのメソッドパラメーターを返します。
    この HandlerMethod インスタンスが createWithResolvedBean() を介して解決された HandlerMethod を返します。
    org.springframework.core.MethodParameter
    HandlerMethod 戻り値の型を返します。
    org.springframework.core.MethodParameter
    実際の戻り値の型を返します。
    ログメッセージのために、このハンドラーメソッドの短い表現を返します。
    int
    <A extends AnnotationSE>
    boolean
    hasMethodAnnotation(ClassSE<A> annotationType)
    指定されたアノテーション型でパラメーターが宣言されているかどうかを返します。
    invoke(org.springframework.messaging.Message<?> message, ObjectSE... providedArgs)
    指定されたメッセージのコンテキストで引数値を解決した後、メソッドを呼び出します。
    boolean
    メソッドの戻り値の型が void の場合は true を返し、そうでない場合は false を返します。
    void
    setConversionService(org.springframework.core.convert.ConversionService conversionService)
    変換サービスを設定します
    void
    メソッドの引数値の解決に使用する HandlerMethodArgumentResolvers を使用するように設定します。
    void
    setParameterNameDiscoverer(org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer)
    必要に応じてパラメーター名を解決するための ParameterNameDiscoverer を設定します(例:
    void
    setValidator(jakarta.validation.Validator validator)

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, waitSE, waitSE
  • フィールドの詳細

    • log

      public static final org.slf4j.Logger log
      フォールバックロガーでラップするためのパブリック。
  • コンストラクターの詳細

    • InvocableShellMethod

      public InvocableShellMethod(ObjectSE bean, MethodSE method)
      Bean インスタンスとメソッドからインスタンスを作成します。
    • InvocableShellMethod

      public InvocableShellMethod(ObjectSE bean, StringSE methodName, ClassSE<?>... parameterTypes) throws NoSuchMethodExceptionSE
      Bean インスタンス、メソッド名、パラメーター型からインスタンスを作成します。
      例外:
      NoSuchMethodExceptionSE - メソッドが見つからない場合
    • InvocableShellMethod

      public InvocableShellMethod(StringSE beanName, org.springframework.beans.factory.BeanFactory beanFactory, MethodSE method)
      Bean 名、メソッド、BeanFactory からインスタンスを作成します。メソッド createWithResolvedBean() は、初期化された Bean で HandlerMethod を再作成するために後で使用できます。
    • InvocableShellMethod

      protected InvocableShellMethod(InvocableShellMethod handlerMethod)
      サブクラスで使用するコンストラクターをコピーします。
  • メソッドの詳細

    • setConversionService

      public void setConversionService(org.springframework.core.convert.ConversionService conversionService)
      変換サービスを設定します
      パラメーター:
      conversionService - 変換サービス
    • setValidator

      public void setValidator(jakarta.validation.Validator validator)
    • setMessageMethodArgumentResolvers

      public void setMessageMethodArgumentResolvers(ShellMethodArgumentResolverComposite argumentResolvers)
      メソッドの引数値の解決に使用する HandlerMethodArgumentResolvers を使用するように設定します。
    • setParameterNameDiscoverer

      public void setParameterNameDiscoverer(org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer)
      必要に応じてパラメーター名を解決するための ParameterNameDiscoverer を設定します(例: デフォルトのリクエスト属性名)。

      デフォルトは DefaultParameterNameDiscoverer です。

    • invoke

      @Nullable public ObjectSE invoke(org.springframework.messaging.Message<?> message, ObjectSE... providedArgs) throws ExceptionSE
      指定されたメッセージのコンテキストで引数値を解決した後、メソッドを呼び出します。

      引数の値は、一般に HandlerMethodArgumentResolvers によって解決されます。ただし、providedArgs パラメーターは、引数の解決なしで直接使用される引数値を提供する場合があります。

      getMethodArgumentValues(org.springframework.messaging.Message<?>, java.lang.Object...) にデリゲートし、解決された引数を使用して doInvoke(java.lang.Object...) を呼び出します。

      パラメーター:
      message - 処理中の現在のメッセージ
      providedArgs - 型によって一致する「指定された」引数、解決されない
      戻り値:
      呼び出されたメソッドによって返される生の値
      例外:
      ExceptionSE - 適切な引数リゾルバーが見つからない場合、またはメソッドで例外が発生した場合に発生します
      関連事項:
    • getMethodArgumentValues

      protected ObjectSE[] getMethodArgumentValues(org.springframework.messaging.Message<?> message, ObjectSE... providedArgs) throws ExceptionSE
      現在のメッセージのメソッド引数値を取得し、提供された引数値を確認して、構成された引数リゾルバーにフォールバックします。

      結果の配列は doInvoke(java.lang.Object...) に渡されます。

      例外:
      ExceptionSE
    • doInvoke

      @Nullable protected ObjectSE doInvoke(ObjectSE... args) throws ExceptionSE
      指定された引数値でハンドラーメソッドを呼び出します。
      例外:
      ExceptionSE
    • getBean

      public ObjectSE getBean()
      このハンドラーメソッドの Bean を返します。
    • getMethod

      public MethodSE getMethod()
      このハンドラーメソッドのメソッドを返します。
    • getBeanType

      public ClassSE<?> getBeanType()
      このメソッドは、このハンドラーメソッドのハンドラーの型を返します。

      Bean 型が CGLIB で生成されたクラスである場合、元のユーザー定義のクラスが返されることに注意してください。

    • getBridgedMethod

      protected MethodSE getBridgedMethod()
      Bean メソッドがブリッジメソッドである場合、このメソッドはブリッジ(ユーザー定義)メソッドを返します。それ以外の場合は、getMethod() と同じメソッドを返します。
    • getMethodParameters

      public org.springframework.core.MethodParameter[] getMethodParameters()
      このハンドラーメソッドのメソッドパラメーターを返します。
    • getReturnType

      public org.springframework.core.MethodParameter getReturnType()
      HandlerMethod 戻り値の型を返します。
    • getReturnValueType

      public org.springframework.core.MethodParameter getReturnValueType(@Nullable ObjectSE returnValue)
      実際の戻り値の型を返します。
    • isVoid

      public boolean isVoid()
      メソッドの戻り値の型が void の場合は true を返し、そうでない場合は false を返します。
    • getMethodAnnotation

      @Nullable public <A extends AnnotationSE> A getMethodAnnotation(ClassSE<A> annotationType)
      指定されたメソッド自体にアノテーションが見つからない場合、そのスーパーメソッドをトラバースする基礎となるメソッドに単一のアノテーションを返します。

      属性のオーバーライドを使用して、結合された合成アノテーションもサポートします。

      パラメーター:
      annotationType - メソッドをイントロスペクトするためのアノテーションの型
      戻り値:
      アノテーション、または見つからない場合は null 
      関連事項:
      • AnnotatedElementUtils.findMergedAnnotation(java.lang.reflect.AnnotatedElement, java.lang.Class<A>)
    • hasMethodAnnotation

      public <A extends AnnotationSE> boolean hasMethodAnnotation(ClassSE<A> annotationType)
      指定されたアノテーション型でパラメーターが宣言されているかどうかを返します。
      パラメーター:
      annotationType - 検索するアノテーション型
      関連事項:
      • AnnotatedElementUtils.hasAnnotation(java.lang.reflect.AnnotatedElement, java.lang.Class<? extends java.lang.annotation.Annotation>)
    • getResolvedFromHandlerMethod

      @Nullable public InvocableShellMethod getResolvedFromHandlerMethod()
      この HandlerMethod インスタンスが createWithResolvedBean() を介して解決された HandlerMethod を返します。
    • createWithResolvedBean

      public InvocableShellMethod createWithResolvedBean()
      提供されたインスタンスにオブジェクトインスタンスではなく Bean 名が含まれる場合、InvocableShellMethod が作成されて返される前に、Bean 名が解決されます。
    • getShortLogMessage

      public StringSE getShortLogMessage()
      ログメッセージのために、このハンドラーメソッドの短い表現を返します。
    • equals

      public boolean equals(@Nullable ObjectSE other)
      オーバーライド:
      クラス ObjectSEequalsSE 
    • hashCode

      public int hashCode()
      オーバーライド:
      クラス ObjectSEhashCode 
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString 
    • findProvidedArgument

      @Nullable protected static ObjectSE findProvidedArgument(org.springframework.core.MethodParameter parameter, @Nullable ObjectSE... providedArgs)
    • formatArgumentError

      protected static StringSE formatArgumentError(org.springframework.core.MethodParameter param, StringSE message)
    • assertTargetBean

      protected void assertTargetBean(MethodSE method, ObjectSE targetBean, ObjectSE[] args)
      ターゲット Bean クラスが、指定されたメソッドが宣言されているクラスのインスタンスであることをアサートします。場合によっては、リクエスト処理時の実際のエンドポイントインスタンスは JDK 動的プロキシ(遅延初期化、プロトタイプ Bean など)である場合があります。プロキシを必要とするエンドポイントクラスは、クラスベースのプロキシメカニズムを優先する必要があります。
    • formatInvokeError

      protected StringSE formatInvokeError(StringSE text, ObjectSE[] args)