首页 文章

如何使用Spring在不遵循Java bean规范的setter中注入对象?

提问于
浏览
7

我想一起使用Springwx-xmlrpc . 问题是XmlRpcClient有一个不遵循Java Bean规范的setConfig()方法:setter和getter不使用相同的Class . 所以当我有以下context.xml时Spring抱怨:

<bean id="xmlRpcClient" class="org.apache.xmlrpc.client.XmlRpcClient">
    <property name="config">
        <bean class="org.apache.xmlrpc.client.XmlRpcClientConfigImpl">
            <property name="serverURL" value="http://example.net" />
        </bean>
    </property>
</bean>

它说:Bean属性'config'不可写或具有无效的setter方法 . setter的参数类型是否与getter的返回类型匹配?

有没有办法覆盖它?我知道我可以为这个bean写一个特定的工厂,但在我看来,这不是我最后一次发现这种问题 . 我使用质量可疑的遗留代码工作很多...能够使用Spring XML配置将是一个很大的帮助!

2 回答

  • 9

    为该类编写FactoryBean并让它调用正确的setter .

  • 2

    我认为没有办法使用Spring XML配置覆盖它 .

    使用工厂的另一种方法是创建一个XmlRpcClient的子类,它具有匹配的XmlRpcClientConfig的getter和setter(例如setClientConfig / getClientConfig) . setClientConfig只会调用super.setConfig .

相关问题