org.springframework.util.MethodInvoker。何时以及为何使用?

时间:2015-09-17 10:14:35

标签: java spring

我是Spring世界的新手。

我想知道何时以及为何使用org.springframework.util.MethodInvoker

在我的项目中,我在applicationService.xml中看到了这一点,它将TOPIC(sonic)作为目标对象,将targetMethod作为订阅。

1 个答案:

答案 0 :(得分:1)

旧版本的答案更明确。在3.1.x javadocMethodInvoker表示:通常不直接使用但通过其子类MethodInvokingFactoryBean和MethodInvokingJobDetailFactoryBean

您可以在MethodInvokingFactoryBean javadoc:

中找到用法示例

bean定义的一个示例(在基于XML的bean工厂定义中),它使用此类来调用静态工厂方法:

 <bean id="myObject" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
   <property name="staticMethod" value="com.whatever.MyClassFactory.getInstance"/>
 </bean>

调用静态方法然后使用实例方法获取Java系统属性的示例。有点冗长,但它确实有效。

 <bean id="sysProps" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
   <property name="targetClass" value="java.lang.System"/>
   <property name="targetMethod" value="getProperties"/>
 </bean>

 <bean id="javaVersion" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
   <property name="targetObject" value="sysProps"/>
   <property name="targetMethod" value="getProperty"/>
   <property name="arguments" value="java.version"/>
 </bean>

TL / DR:MethodInvoker本身很少使用,但它的子类如org.springframework.beans.factory.config.MethodInvokingFactoryBean用于执行XML配置文件中的任意方法。