J'essaie d'utiliser Spring et wx-xmlrpc ensemble. Le problème est que XmlRpcClient a une méthode setConfig() qui ne suit pas la spécification Java Bean: le setter et le getter n'utilisent pas la même classe. Donc, les plaintes printemps quand j'ai le context.xml suivant:Comment utiliser Spring pour injecter un objet dans un setter qui ne suit pas la spécification du bean Java?
<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>
Il dit: la propriété Bean « config » est pas accessible en écriture ou a une méthode setter non valide. Le type de paramètre du setter correspond-il au type de retour du getter?
Existe-t-il un moyen de surcharger cela? Je sais que je pourrais écrire une usine spécifique pour ce haricot, mais il me semble que ce n'est pas la dernière fois que je trouve ce genre de problème. Je travaille beaucoup avec un code hérité de qualité douteuse ... Etre capable d'utiliser la configuration Spring XML avec ça serait une aide précieuse!
Pas vraiment la réponse que je voudrais avoir, mais comme il semble que je ne peux pas faire ce que je veux en XML, un FactoryBean est la solution de contournement la plus propre. – Guillaume
FactoryBeans est là pour vous permettre d'intégrer des éléments non-beans dans Spring. Ce n'est pas une solution de contournement, c'est la solution prévue. – skaffman
Toutes vos entrées de bean en XML sont finalement utilisées pour créer un BeanFactory concret. –