Spring: Using builder pattern to create a bean

Tags: , , , ,

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()

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()

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"/>

Then you can inject this bean to another beans, it will be resolved as StdHttpClient instance.

Source: stackoverflow