public class MethodInvokingBean extends ArgumentConvertingMethodInvoker implements BeanClassLoaderAware, BeanFactoryAware, InitializingBean
MethodInvokingFactoryBean とは対照的に)結果がコンテナーに公開されることを期待せずに、ターゲットメソッドを呼び出すだけです。 この呼び出し元は、あらゆる種類のターゲットメソッドをサポートします。静的メソッドを指定するには、targetMethod プロパティを静的メソッド名を表す文字列に設定します。targetClass は、静的メソッドが定義されているクラスを指定します。または、targetObject プロパティをターゲットオブジェクトとして設定し、targetMethod プロパティをそのターゲットオブジェクトで呼び出すメソッドの名前として設定することにより、ターゲットインスタンスメソッドを指定できます。メソッド呼び出しの引数は、arguments プロパティを設定することで指定できます。
このクラスは、InitializingBean 契約に従ってすべてのプロパティが設定された後に呼び出される afterPropertiesSet() に依存しています。
このクラスを使用して静的初期化メソッドを呼び出す Bean 定義の例(XML ベースの Bean ファクトリ定義内):
<bean id="myObject" class="org.springframework.beans.factory.config.MethodInvokingBean"> <property name="staticMethod" value="com.whatever.MyClass.init"/> </bean>
インスタンスメソッドを呼び出してサーバー Bean を起動する例:
<bean id="myStarter" class="org.springframework.beans.factory.config.MethodInvokingBean"> <property name="targetObject" ref="myServer"/> <property name="targetMethod" value="start"/> </bean>
MethodInvokingFactoryBean, MethodInvokertargetClass| コンストラクターと説明 |
|---|
MethodInvokingBean() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() |
protected TypeConverter | getDefaultTypeConverter() 可能であれば、この Bean が実行されている BeanFactory から TypeConverter を取得します。 |
protected ObjectSE | invokeWithTargetException() 呼び出しを実行し、InvocationTargetException を基になるターゲット例外に変換します。 |
protected ClassSE<?> | resolveClassName(StringSE className) 指定されたクラス名をクラスに解決します。 |
void | setBeanClassLoader(ClassLoaderSE classLoader)Bean class loaderSE を Bean インスタンスに提供するコールバック。 |
void | setBeanFactory(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。 |
doFindMatchingMethod, findMatchingMethod, getTypeConverter, registerCustomEditor, setTypeConvertergetArguments, getPreparedMethod, getTargetClass, getTargetMethod, getTargetObject, getTypeDifferenceWeight, invoke, isPrepared, prepare, setArguments, setStaticMethod, setTargetClass, setTargetMethod, setTargetObjectcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic void setBeanClassLoader(ClassLoaderSE classLoader)
BeanClassLoaderAwareclass loaderSE を Bean インスタンスに提供するコールバック。 通常の Bean プロパティの設定後、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanClassLoaderAware の setBeanClassLoader classLoader - 所有クラスローダー protected ClassSE<?> resolveClassName(StringSE className) throws ClassNotFoundExceptionSE
MethodInvoker デフォルトの実装では、スレッドコンテキストクラスローダーを使用して ClassUtils.forName を使用します。
MethodInvoker の resolveClassName className - 解決するクラス名 ClassNotFoundExceptionSE - クラス名が無効だった場合 public void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware 通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanFactoryAware の setBeanFactory beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationExceptionprotected TypeConverter getDefaultTypeConverter()
public void afterPropertiesSet()
throws ExceptionSEInitializingBeanBeanFactoryAware、ApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean の afterPropertiesSet ExceptionSE - 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合 @Nullable protected ObjectSE invokeWithTargetException() throws ExceptionSE
ExceptionSE