嚴格來說:有兩個參數的setter不是setter。它違反了Spring構建的JavaBeans約定。沒有簡單的方法來解決這個問題。
作爲替代,這裏是你可以用它來配置你的HttpParams一個助手類對象與Spring:
public class HttpParamSetter{
private HttpParams httpParams;
public void setHttpParams(HttpParams httpParams){
this.httpParams = httpParams;
}
private Map<String, Object> parameters;
public void setParameters(Map<String, Object> parameters){
this.parameters = parameters;
}
@PostConstruct
public void applyParameters(){
for(Entry<String, Object> entry:parameters.entrySet()){
httpParams.setParameter(entry.getKey(), entry.getValue());
}
}
}
線這樣的:
<bean class="com.yourcompany.HttpParamSetter">
<property name="httpParams" ref="httpParams" />
<property name="parameters">
<map>
<entry key="foo" value="bar" />
<entry key="baz" value="phleem" />
</map>
</property>
</bean>
謝謝我認爲沒有辦法單純使用spring,我們最終做的是實現一個Spring FactoryBean,它可以提供必要的連接工廠,然後配置如下所示: ,httpParamFactory是我們FactoryBean的一個實例。 –
craftsmanadam
2011-03-15 15:17:27
@craftsmanadam我最初會建議,但是我不知道你是否自己創建了Params對象,所以我選擇了一個應該始終工作的解決方案(但是你的可能更像彈簧) – 2011-03-15 17:04:59