严格来说:有两个参数的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