À l'aide de MethodInvokingFactoryBean pour définir non conventionnelles haricots
Je suis en train de mettre en place HostConfiguration bean. L'un des biens qu'il a est appelé proxyHost
. Cependant, l'apache HostConfiguration classe n'a pas suivi les java beans convention. Le setter pour la proxyHost accepte un argument de type ProxyHost alors que la getter retourne une Chaîne de caractères.
J'ai le code suivant dans mon applicationContext.xml
.
<bean id="proxyHost" class="org.apache.commons.httpclient.ProxyHost">
<constructor-arg index="0" type="java.lang.String" value="myproxy.com" />
<constructor-arg index="1" type="int" value="8087" />
</bean>
<bean id="hostConfiguration" class="org.apache.commons.httpclient.HostConfiguration">
<property name="proxyHost" ref="proxyHost" />
</bean>
Lorsque j'essaie de charger le applicationContext de l'application, j'obtiens l'erreur suivante depuis HostConfigurationClass
ne dispose pas d'un getProxyHost
qui renvoie un ProxyHost ou un setter qui prend une Chaîne de caractères:-
org.springframework.les haricots.NotWritablePropertyExcep tion: propriété non Valide 'proxyHost" de la fève de classe [org.apache.commons.httpclient.HostConfiguration]: Bean propriété "proxyHost' est pas accessible en écriture ou n'est pas valide méthode de définition: le type de paramètre de l'incubateur correspondre au type de retour de la lecture?
Lors de la recherche sur la springsource forum je suis tombé sur ce fil où il était recommandé d'utiliser MethodInvokingFactoryBean de résoudre ce problème.
Je ne suis pas sûr de savoir exactement comment à l'aide de MethodInvokingFactoryBean
voudrais de l'aide car j'aurais besoin d'un type de retour de ProxyHost
de la méthode getProxyHost()
pour résoudre ce problème, droite? Et je ne suis pas aussi sûr de savoir comment l'utiliser dans ce contexte. Je ne suis pas clair sur le fonctionnement interne de MethodInvokingFactoryBean
. Donc, si quelqu'un pouvait me donner un exemple dans le contexte ci-dessus comment utiliser MethodInvokingFactoryBean
qui serait d'un grand secours.
Aussi est-ce la façon de configurer les haricots comme HostConfiguration
qui ne suivent pas la convention au printemps?
Merci!
OriginalL'auteur CoolBeans | 2011-03-23
Vous devez vous connecter pour publier un commentaire.
D'abord , instancier la
ProxyHost
(c'est à dire
ProxyHost proxyHost = new ProxyHost("myproxy1.com",8080);
Puis instancier la
HostConfiguration
objet(c'est à dire
HostConfiguration hostConfiguration = new HostConfiguration();
Après cela , utilisez le
MethodInvokingFactoryBean
appelersetProxyHost()
sur leHostConfiguration
et passer leproxyHost
comme argument.(c'est à dire
hostConfiguration.setProxyHost(proxyHost);
)OriginalL'auteur Ken Chan
Comme mentionné dans l'autre réponse, vous pouvez mettre en œuvre un L'interface factorybean. Si vous êtes à l'aide de spring 3.0 vous pouvez également jeter un oeil à la Java Configuration - @Configuration /@Bean.
OriginalL'auteur gkamal