クラス InvocableShellMethod
java.lang.ObjectSE
org.springframework.shell.command.invocation.InvocableShellMethod
メソッドと Bean で構成されるハンドラーメソッドに関する情報をカプセル化します。メソッドのパラメーター、メソッドの戻り値、メソッドのアノテーションなどへの便利なアクセスを提供します。
クラスは、Bean インスタンスまたは Bean 名 (例: lazy-init Bean、プロトタイプ Bean) で作成できます。createWithResolvedBean() を使用して、関連付けられた BeanFactory によって解決された Bean インスタンスを持つ HandlerMethod インスタンスを取得します。
ネストされたクラスの要約
ネストされたクラス修飾子と型クラス説明protected classHandlerMethod 固有の動作を持つ MethodParameter。フィールドのサマリー
フィールドコンストラクターの概要
コンストラクター修飾子コンストラクター説明InvocableShellMethod(ObjectSE bean, MethodSE method) Bean インスタンスとメソッドからインスタンスを作成します。InvocableShellMethod(ObjectSE bean, StringSE methodName, ClassSE<?>... parameterTypes) Bean インスタンス、メソッド名、パラメーター型からインスタンスを作成します。InvocableShellMethod(StringSE beanName, org.springframework.beans.factory.BeanFactory beanFactory, MethodSE method) Bean 名、メソッド、BeanFactoryからインスタンスを作成します。protectedInvocableShellMethod(InvocableShellMethod handlerMethod) サブクラスで使用するコンストラクターをコピーします。メソッドのサマリー
修飾子と型メソッド説明protected voidassertTargetBean(MethodSE method, ObjectSE targetBean, ObjectSE[] args) ターゲット Bean クラスが、指定されたメソッドが宣言されているクラスのインスタンスであることをアサートします。提供されたインスタンスにオブジェクトインスタンスではなく Bean 名が含まれる場合、InvocableShellMethodが作成されて返される前に、Bean 名が解決されます。protected ObjectSE指定された引数値でハンドラーメソッドを呼び出します。booleanprotected static ObjectSEfindProvidedArgument(org.springframework.core.MethodParameter parameter, ObjectSE... providedArgs) protected static StringSEformatArgumentError(org.springframework.core.MethodParameter param, StringSE message) protected StringSEformatInvokeError(StringSE text, ObjectSE[] args) getBean()このハンドラーメソッドの Bean を返します。ClassSE<?>このメソッドは、このハンドラーメソッドのハンドラーの型を返します。protected MethodSEBean メソッドがブリッジメソッドである場合、このメソッドはブリッジ(ユーザー定義)メソッドを返します。このハンドラーメソッドのメソッドを返します。<A extends AnnotationSE>
AgetMethodAnnotation(ClassSE<A> annotationType) 指定されたメソッド自体にアノテーションが見つからない場合、そのスーパーメソッドをトラバースする基礎となるメソッドに単一のアノテーションを返します。protected ObjectSE[]getMethodArgumentValues(org.springframework.messaging.Message<?> message, ObjectSE... providedArgs) 現在のメッセージのメソッド引数値を取得し、提供された引数値を確認して、構成された引数リゾルバーにフォールバックします。org.springframework.core.MethodParameter[]このハンドラーメソッドのメソッドパラメーターを返します。この HandlerMethod インスタンスがcreateWithResolvedBean()を介して解決された HandlerMethod を返します。org.springframework.core.MethodParameterHandlerMethod 戻り値の型を返します。org.springframework.core.MethodParametergetReturnValueType(ObjectSE returnValue) 実際の戻り値の型を返します。ログメッセージのために、このハンドラーメソッドの短い表現を返します。inthashCode()<A extends AnnotationSE>
booleanhasMethodAnnotation(ClassSE<A> annotationType) 指定されたアノテーション型でパラメーターが宣言されているかどうかを返します。指定されたメッセージのコンテキストで引数値を解決した後、メソッドを呼び出します。booleanisVoid()メソッドの戻り値の型が void の場合はtrueを返し、そうでない場合はfalseを返します。voidsetConversionService(org.springframework.core.convert.ConversionService conversionService) 変換サービスを設定しますvoidsetMessageMethodArgumentResolvers(ShellMethodArgumentResolverComposite argumentResolvers) メソッドの引数値の解決に使用するHandlerMethodArgumentResolversを使用するように設定します。voidsetParameterNameDiscoverer(org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer) 必要に応じてパラメーター名を解決するための ParameterNameDiscoverer を設定します(例:voidsetValidator(jakarta.validation.Validator validator) toString()
フィールドの詳細
log
public static final org.slf4j.Logger logフォールバックロガーでラップするためのパブリック。
コンストラクターの詳細
InvocableShellMethod
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
サブクラスで使用するコンストラクターをコピーします。
メソッドの詳細
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
指定された引数値でハンドラーメソッドを呼び出します。- 例外:
ExceptionSE
getBean
このハンドラーメソッドの Bean を返します。getMethod
このハンドラーメソッドのメソッドを返します。getBeanType
このメソッドは、このハンドラーメソッドのハンドラーの型を返します。Bean 型が CGLIB で生成されたクラスである場合、元のユーザー定義のクラスが返されることに注意してください。
getBridgedMethod
Bean メソッドがブリッジメソッドである場合、このメソッドはブリッジ(ユーザー定義)メソッドを返します。それ以外の場合は、getMethod()と同じメソッドを返します。getMethodParameters
public org.springframework.core.MethodParameter[] getMethodParameters()このハンドラーメソッドのメソッドパラメーターを返します。getReturnType
public org.springframework.core.MethodParameter getReturnType()HandlerMethod 戻り値の型を返します。getReturnValueType
実際の戻り値の型を返します。isVoid
public boolean isVoid()メソッドの戻り値の型が void の場合はtrueを返し、そうでない場合はfalseを返します。getMethodAnnotation
指定されたメソッド自体にアノテーションが見つからない場合、そのスーパーメソッドをトラバースする基礎となるメソッドに単一のアノテーションを返します。属性のオーバーライドを使用して、結合された合成アノテーションもサポートします。
- パラメーター:
annotationType- メソッドをイントロスペクトするためのアノテーションの型- 戻り値:
- アノテーション、または見つからない場合は
null - 関連事項:
AnnotatedElementUtils.findMergedAnnotation(java.lang.reflect.AnnotatedElement, java.lang.Class<A>)
hasMethodAnnotation
指定されたアノテーション型でパラメーターが宣言されているかどうかを返します。- パラメーター:
annotationType- 検索するアノテーション型- 関連事項:
AnnotatedElementUtils.hasAnnotation(java.lang.reflect.AnnotatedElement, java.lang.Class<? extends java.lang.annotation.Annotation>)
getResolvedFromHandlerMethod
この HandlerMethod インスタンスがcreateWithResolvedBean()を介して解決された HandlerMethod を返します。createWithResolvedBean
提供されたインスタンスにオブジェクトインスタンスではなく Bean 名が含まれる場合、InvocableShellMethodが作成されて返される前に、Bean 名が解決されます。getShortLogMessage
ログメッセージのために、このハンドラーメソッドの短い表現を返します。equals
hashCode
public int hashCode()toString
findProvidedArgument
formatArgumentError
assertTargetBean
ターゲット Bean クラスが、指定されたメソッドが宣言されているクラスのインスタンスであることをアサートします。場合によっては、リクエスト処理時の実際のエンドポイントインスタンスは JDK 動的プロキシ(遅延初期化、プロトタイプ Bean など)である場合があります。プロキシを必要とするエンドポイントクラスは、クラスベースのプロキシメカニズムを優先する必要があります。formatInvokeError