cra*_*dam 7 java configuration spring javabeans
我想使用spring setter注入配置HttpParams,但是HttpParams有一个两个参数setter(setParameter(String name,Object object)).有人知道在春天配置这个的方法吗?
我能想到的最接近的就是你会做List,Set或Property配置:
http://www.mkyong.com/spring/spring-collections-list-set-map-and-properties-example/
谢谢!
严格来说:具有两个参数的setter不是setter.它违反了Spring构建的JavaBeans约定.没有简单的方法可以解决这个问题.
作为替代方案,这里有一个Helper类,您可以使用它来配置Spring的HttpParams对象:
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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
像这样连线:
<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>
Run Code Online (Sandbox Code Playgroud)