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
, MethodInvoker
targetClass
コンストラクターと説明 |
---|
MethodInvokingBean() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() |
protected TypeConverter | getDefaultTypeConverter() 可能であれば、この Bean が実行されている BeanFactory から TypeConverter を取得します。 |
protected ObjectSE | invokeWithTargetException() 呼び出しを実行し、InvocationTargetException を基になるターゲット例外に変換します。 |
protected ClassSE<?> | resolveClassName(StringSE className) 指定されたクラス名をクラスに解決します。 |
void | setBeanClassLoader(ClassLoaderSE classLoader) Bean class loader SE を Bean インスタンスに提供するコールバック。 |
void | setBeanFactory(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。 |
doFindMatchingMethod, findMatchingMethod, getTypeConverter, registerCustomEditor, setTypeConverter
getArguments, getPreparedMethod, getTargetClass, getTargetMethod, getTargetObject, getTypeDifferenceWeight, invoke, isPrepared, prepare, setArguments, setStaticMethod, setTargetClass, setTargetMethod, setTargetObject
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setBeanClassLoader(ClassLoaderSE classLoader)
BeanClassLoaderAware
class loader
SE を 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 は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationException
protected TypeConverter getDefaultTypeConverter()
public void afterPropertiesSet() throws ExceptionSE
InitializingBean
BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含 BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean
の afterPropertiesSet
ExceptionSE
- 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合 @Nullable protected ObjectSE invokeWithTargetException() throws ExceptionSE
ExceptionSE