title: Can't inject multiple ObjectMapper beans in Spring Boot application
body: <p>I am defining beans using @Bean annotation and trying to wire them using name , but receiving an exception.</p>
  
  <p><strong>Complete Example</strong></p>
  
  <pre><code>package com.example;
  
  import org.springframework.boot.SpringApplication;
  import org.springframework.boot.autoconfigure.SpringBootApplication;
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.ComponentScan;
  import com.fasterxml.jackson.databind.ObjectMapper;
  
  @SpringBootApplication
  @ComponentScan({"com.example"})
  public class SampleSpringBootApplication {
  
      public static void main(String[] args) {
          SpringApplication.run(SampleSpringBootApplication.class, args);
      }
  
  
      @Bean
      public ObjectMapper scmsObjectMapper() {
          com.fasterxml.jackson.databind.ObjectMapper responseMapper = new com.fasterxml.jackson.databind.ObjectMapper();
          return responseMapper;
      }
  
      @Bean
      public ObjectMapper scmsWriteObjectMapper() {
          com.fasterxml.jackson.databind.ObjectMapper responseMapper = new com.fasterxml.jackson.databind.ObjectMapper();
          return responseMapper;
      }
  }
  </code></pre>
  
  <p>Controller    </p>
  
  <pre><code>package com.example;
  
  import org.springframework.http.HttpStatus;
  import org.springframework.http.MediaType;
  import org.springframework.http.ResponseEntity;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RequestMethod;
  import org.springframework.web.bind.annotation.RequestParam;
  import org.springframework.web.bind.annotation.ResponseBody;
  import org.springframework.web.bind.annotation.ResponseStatus;
  import org.springframework.web.bind.annotation.RestController;
  
  @RestController
  public class SampleController {
  
      @RequestMapping(method={RequestMethod.GET}, value="sample/hello", produces=MediaType.APPLICATION_JSON_VALUE)
      @ResponseStatus(HttpStatus.OK)
      public @ResponseBody ResponseEntity&lt;String&gt; getCart() {
          return new ResponseEntity&lt;String&gt;("Hello", HttpStatus.OK);
      }
  
  
  }
  </code></pre>
  
  <p>build.gradle</p>
  
  <pre><code>buildscript {
      ext {
          springBootVersion = '1.2.7.RELEASE'
      }
      repositories {
          mavenCentral()
      }
      dependencies {
          classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
          classpath('io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE')
      }
  }
  
  apply plugin: 'java'
  apply plugin: 'eclipse'
  apply plugin: 'idea'
  apply plugin: 'spring-boot' 
  apply plugin: 'io.spring.dependency-management' 
  
  jar {
      baseName = 'Sample-SpringBoot'
      version = '0.0.1-SNAPSHOT'
  }
  sourceCompatibility = 1.8
  targetCompatibility = 1.8
  
  repositories {
      mavenCentral()
  }
  
  
  dependencies {
      compile('org.springframework.boot:spring-boot-starter')
      testCompile('org.springframework.boot:spring-boot-starter-test') 
      compile("org.springframework.boot:spring-boot-starter-web:1.2.3.RELEASE")
      compile('com.fasterxml.jackson.core:jackson-databind:2.5.1')
  }
  
  
  eclipse {
      classpath {
           containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
           containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
      }
  }
  
  task wrapper(type: Wrapper) {
      gradleVersion = '2.7'
  }
  </code></pre>
  
  <p>Exception</p>
  
  <pre><code> Caused by:
   org.springframework.beans.factory.NoUniqueBeanDefinitionException: No
   qualifying bean of type [com.fasterxml.jackson.databind.ObjectMapper]
   is defined: expected single matching bean but found 2:
   scmsObjectMapper,scmsWriteObjectMapper
  </code></pre>