我是Spring
世界的新手。
我想知道何时以及为何使用org.springframework.util.MethodInvoker
?
在我的项目中,我在applicationService.xml
中看到了这一点,它将TOPIC(sonic)作为目标对象,将targetMethod作为订阅。
答案 0 :(得分:1)
旧版本的答案更明确。在3.1.x javadoc中MethodInvoker
表示:通常不直接使用但通过其子类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配置文件中的任意方法。