Class MethodInvokingBean
- java.lang.Object
- org.springframework.util.MethodInvoker
- org.springframework.beans.support.ArgumentConvertingMethodInvoker
- org.springframework.beans.factory.config.MethodInvokingBean
- All Implemented Interfaces:
Aware,BeanClassLoaderAware,BeanFactoryAware,InitializingBean
- Direct Known Subclasses:
MethodInvokingFactoryBean
public class MethodInvokingBean extends ArgumentConvertingMethodInvoker implements BeanClassLoaderAware, BeanFactoryAware, InitializingBean
Simple method invoker bean: just invoking a target method, not expecting a result to expose to the container (in contrast toMethodInvokingFactoryBean).This invoker supports any kind of target method. A static method may be specified by setting the
targetMethodproperty to a String representing the static method name, withtargetClassspecifying the Class that the static method is defined on. Alternatively, a target instance method may be specified, by setting thetargetObjectproperty as the target object, and thetargetMethodproperty as the name of the method to call on that target object. Arguments for the method invocation may be specified by setting theargumentsproperty.This class depends on
afterPropertiesSet()being called once all properties have been set, as per the InitializingBean contract.An example (in an XML based bean factory definition) of a bean definition which uses this class to call a static initialization method:
<bean id="myObject" class="org.springframework.beans.factory.config.MethodInvokingBean"> <property name="staticMethod" value="com.whatever.MyClass.init"/> </bean>
An example of calling an instance method to start some server bean:
<bean id="myStarter" class="org.springframework.beans.factory.config.MethodInvokingBean"> <property name="targetObject" ref="myServer"/> <property name="targetMethod" value="start"/> </bean>
- Since:
- 4.0.3
- Author:
- Juergen Hoeller
- See Also:
MethodInvokingFactoryBean,MethodInvoker
Constructor Summary
Constructors Constructor Description MethodInvokingBean()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPropertiesSet()Invoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.protected TypeConvertergetDefaultTypeConverter()Obtain the TypeConverter from the BeanFactory that this bean runs in, if possible.protected ObjectinvokeWithTargetException()Perform the invocation and convert InvocationTargetException into the underlying target exception.protected Class<?>resolveClassName(String className)Resolve the given class name into a Class.voidsetBeanClassLoader(ClassLoader classLoader)Callback that supplies the beanclass loaderto a bean instance.voidsetBeanFactory(BeanFactory beanFactory)Callback that supplies the owning factory to a bean instance.Methods inherited from class org.springframework.beans.support.ArgumentConvertingMethodInvoker
doFindMatchingMethod, findMatchingMethod, getTypeConverter, registerCustomEditor, setTypeConverter
Methods inherited from class org.springframework.util.MethodInvoker
getArguments, getPreparedMethod, getTargetClass, getTargetMethod, getTargetObject, getTypeDifferenceWeight, invoke, isPrepared, prepare, setArguments, setStaticMethod, setTargetClass, setTargetMethod, setTargetObject
Constructor Detail
MethodInvokingBean
public MethodInvokingBean()
Method Detail
setBeanClassLoader
public void setBeanClassLoader(ClassLoader classLoader)
Description copied from interface:BeanClassLoaderAwareCallback that supplies the beanclass loaderto a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean'sInitializingBean.afterPropertiesSet()method or a custom init-method.- Specified by:
setBeanClassLoaderin interfaceBeanClassLoaderAware- Parameters:
classLoader- the owning class loader; may benullin which case a defaultClassLoadermust be used, for example theClassLoaderobtained viaClassUtils.getDefaultClassLoader()
resolveClassName
protected Class<?> resolveClassName(String className) throws ClassNotFoundException
Description copied from class:MethodInvokerResolve the given class name into a Class.The default implementations uses
ClassUtils.forName, using the thread context class loader.- Overrides:
resolveClassNamein classMethodInvoker- Parameters:
className- the class name to resolve- Returns:
- the resolved Class
- Throws:
ClassNotFoundException- if the class name was invalid
setBeanFactory
public void setBeanFactory(BeanFactory beanFactory)
Description copied from interface:BeanFactoryAwareCallback that supplies the owning factory to a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean.afterPropertiesSet()or a custom init-method.- Specified by:
setBeanFactoryin interfaceBeanFactoryAware- Parameters:
beanFactory- owning BeanFactory (nevernull). The bean can immediately call methods on the factory.- See Also:
BeanInitializationException
getDefaultTypeConverter
protected TypeConverter getDefaultTypeConverter()
Obtain the TypeConverter from the BeanFactory that this bean runs in, if possible.- Overrides:
getDefaultTypeConverterin classArgumentConvertingMethodInvoker- See Also:
ConfigurableBeanFactory.getTypeConverter()
afterPropertiesSet
public void afterPropertiesSet() throws Exception
Description copied from interface:InitializingBeanInvoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
- Specified by:
afterPropertiesSetin interfaceInitializingBean- Throws:
Exception- in the event of misconfiguration (such as failure to set an essential property) or if initialization fails for any other reason
invokeWithTargetException
protected Object invokeWithTargetException() throws Exception
Perform the invocation and convert InvocationTargetException into the underlying target exception.- Throws:
Exception