MethodInvokingBean问题

时间:2009-09-05 20:24:42

标签: spring

我有一个方法调用bean,它调用一个方法在targetBean上执行某种初始化,另一个bean需要一个twitter类,尽管已初始化。

<bean id="twitter" class="twitter4j.Twitter"></bean>

<bean id="twitterInjector"
      class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
      <property name="targetObject" ref="twitter"/>
      <property name="targetMethod">
          <value>setOAuthConsumer</value>
      </property>
      <property name="arguments">
         <list>
           <value>consumerKey</value>
           <value>consumerSecret</value>
         </list>
     </property>
</bean>

<bean  id="MyPageController"
       class="com.hardwire.controller.MyPageController">
       <property name="twitter" ref="What should I put here? twitter or
                                                             twitterInjector?/>
       .
       .
       .         
</bean>

我应该注入MyPageController,twitterInjector或twitter?

1 个答案:

答案 0 :(得分:1)

MethodInvokingFactoryBean - 与Spring中的所有其他工厂bean一样 - 主要用于生成新bean;在这种特殊情况下,通过调用其他bean(或类)的方法。您的setOAuthConsumer方法似乎不会返回bean,因此在这些情况下使用MethodInvokingFactoryBean可能不是最佳方法。

如果我弄错了并且它确实返回了一个bean(在这种情况下考虑重命名)并且那是你想要在控制器中注入的bean,那么你应该使用twitterInjector作为ref值。如果您真的想在控制器中使用twitter,那么您应该使用twitter