Singleton Bean-Instanz nach generischem Parameter

Ich möchte eine Singleton-Bean-Instanz mit einem generischen Parameter basierend auf einem einzelnen @ habe@Component generische Klasse.

(Ich verwende Spring 4.)

Mein Code:

Ich habe eininterface so was

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

nd mehrfache Implementierung davon, die Frühling si@Components (Singletons). Etwas wie das

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

un

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

woherClazzAI, ClazzAO, ClazzBI undClazzBO sind grundlegende Java-Klassen.

Ich habe noch einen Frühling@Component (Singleton) die ein @ habMapper class als generischer Parameter:

@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;
    }

    ...
}

und ich würde es gerne so benutzen:

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

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

Das Problem

But Spring kann diese 2 Objekte nicht instanziieren, da es 2 Implementierungen von @ findeMapper : MapperA undMapperB auch wenn ich als generischen Parameter angabe, welche Implementierung ich haben möchte.

Jede Idee, wie man es schafft, ohne all diese Bohnen in einem @ instanziieren zu müss@Configuration class ?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage