Instancia Singleton Bean por parámetro genérico

Me gustaría tener una instancia de bean singleton por parámetro genérico basado en un solo@Component clase genérica

(Estoy usando Spring 4.)

Mi código :

Yo tengo uninterface Me gusta esto :

public interface Mapper<I, O> {
    ...
}

Y múltiples implementaciones que son Spring@Components (singletons). Algo como esto :

@Component
public class MapperA implements Mapper<ClazzAI, ClazzAO> {
    ...
}

y

@Component
public class MapperB implements Mapper<ClazzBI, ClazzBO> {
    ...
}

dóndeClazzAI, ClazzAO, ClazzBI yClazzBO son clases básicas de Java.

Tengo otra primavera@Component (singleton) que tienen unMapper class como parámetro genérico:

@Component
public class TransformerImpl<I, O, M extends Mapper<I, O>> {

    /** The Mapper */
    protected final M mapper;

    @Inject
    private TransformerImpl(final M mapper) {

        this.mapper= mapper;
    }

    ...
}

y me gustaría usarlo así:

@Inject
private TransformerImpl<ClazzAI, ClazzAO, MapperA> transformerA;

@Inject
private TransformerImpl<ClazzBI, ClazzBO, MapperB> transformerB;

El problema :

Pero Spring no puede instanciar esos 2 objetos porque encuentra 2 implementaciones deMapper : MapperA yMapperB incluso si especifico qué implementación quiero como parámetro genérico.

Alguna idea de cómo hacerlo sin la necesidad de instanciar todos esos frijoles en un@Configuration class ?

Respuestas a la pregunta(2)

Su respuesta a la pregunta