代码之家  ›  专栏  ›  技术社区  ›  Guillaume

如何使用Spring在不遵循JavaBean规范的设置程序中注入对象?

  •  7
  • Guillaume  · 技术社区  · 15 年前

    我想用 Spring wx-xmlrpc 一起。问题是 XmlRpcClient 有一个 setConfig() 不遵循JavaBean规范的方法:SETER和GETTER不使用同一个类。因此,当_i具有以下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编写一个特定的工厂,但在我看来,这不是我最后一次发现这种问题。我经常使用质量可疑的遗留代码…能够将SpringXML配置与它一起使用将是一个很大的帮助!

    2 回复  |  直到 15 年前
        1
  •  9
  •   mP.    15 年前

    为该类编写一个factrybean,并让它调用正确的setter。

        2
  •  2
  •   Mark    15 年前

    我认为没有任何方法可以使用SpringXML配置来覆盖它。

    使用工厂的另一种选择是生成xmlrpcclient的子类,该子类具有与xmlrpcclientconfig匹配的getter和setter(例如setclientconfig/getclientconfig)。setclientconfig只需调用super.setconfig。