title: Spring type conversion not taking effect
body: <p>I have a lot of Enums implementing an Interface called Codeable. I want to do a reverse look up when deserializing from json and trying to use a ConverterFactory</p>
  
  <pre><code>public class StringToCodeableConverterFactory implements ConverterFactory&lt;String, Codeable&gt; {
  
  @Override
  public &lt;T extends Codeable&gt; Converter&lt;String, T&gt; getConverter(
          Class&lt;T&gt; targetType) {
      return new StringToCodeableConverter&lt;T&gt;(targetType);
  }
  
  private final class StringToCodeableConverter&lt;T extends Codeable&gt; implements Converter&lt;String, T&gt; {
  
      private Class&lt;T&gt; enumType;
  
      public StringToCodeableConverter(Class&lt;T&gt; enumType) {
          this.enumType = enumType;
      }
  
      @Override
      public T convert(String source) {
          return CodeableUtil.get(this.enumType, source);
      }
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Here's the spring config</p>
  
  <pre><code>&lt;!-- Custom Converters from String to Java Type--&gt;
  &lt;bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"&gt;
      &lt;property name="converters"&gt;
          &lt;list&gt;
              &lt;bean class="com.duetto.model.StringToCodeableConverterFactory" /&gt;
          &lt;/list&gt;    
      &lt;/property&gt;
  &lt;/bean&gt;
  
  &lt;mvc:annotation-driven conversion-service="conversionService"&gt;
  </code></pre>
  
  <p>After some digging, I figured out Spring is taking the default StringToEnumConverterFactory instead of my StringToCodeableConverterFactory, why is it this way? How can I make my take precedence over the other one?</p>