Skip to content

Spring: Using builder pattern to create a bean

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) { = 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.

User contributions licensed under: CC BY-SA
10 People found this is helpful