I use ektorp to connect to CouchDB.
The way to build an ektorp HttpClient
instance is to use builder pattern:
HttpClient httpClient = new StdHttpClient.Builder()
.host("mychouchdbhost")
.port(4455)
.build();
I am relatively new to Spring. Please advice me on how I can configure an HttpClient
in my context to create it via the Builder
.
One way to do this is with @Configuration
. Are any other options?
You may try to implement FactoryBean
interface:
public class HttpFactoryBean implements FactoryBean<HttpClient>{
private String host;
private int port;
public HttpClient getObject() throws Exception {
return new StdHttpClient.Builder()
.host(host)
.port(port)
.build();
}
public Class<? extends HttpClient> getObjectType() {
return StdHttpClient.class;
}
public boolean isSingleton() {
return true;
}
public void setHost(String host) {
this.host = host;
}
public void setPort(int port) {
this.port = port;
}}
And add to config following bean definition:
<beans ...">
<bean name="myHttpClient" class="HttpFactoryBean">
<property name="port" value="8080"/>
<property name="host" value="localhost"/>
</bean>
</beans>
Then you can inject this bean to another beans, it will be resolved as StdHttpClient
instance.