Printemps 3.2 Autowire types génériques

J'ai donc un certain nombre de génériques au Printemps 3.2 et, idéalement, mon architecture ressemblerait à quelque chose comme ça.

class GenericDao<T>{}

class GenericService<T, T_DAO extends GenericDao<T>>
{
    //FAILS
    @Autowired
    T_DAO;
}

@Component
class Foo{}

@Repository
class FooDao extends GenericDao<Foo>{}

@Service
FooService extends GenericService<Foo, FooDao>{}

Malheureusement, avec de multiples implémentations de l'génériques l'permettra à l'autowiring déclenche une erreur sur plusieurs correspondant bean définitions. Je suppose que c'est parce que @Autowired processus avant type d'effacement. Chaque solution que j'ai trouvé ou venir avec des regards laid pour moi ou juste inexplicablement refuse de travailler. Quelle est la meilleure façon de contourner ce problème?

  • Avez-vous essayé avec le déplacement @Autowired annotation de setter?
  • Avez-vous essayé d'utiliser un @Qualifier avec l'annotation pour spécifier la mise en œuvre de la version que vous voulez?
  • Votre rencontre type erasure. Ces questions peuvent vous être utile: (1), (2).
  • stackoverflow.com/questions/15002836/...
  • Juste une remarque: les génériques sont seulement compilation de sucre. Ils n'existe pas dans l'exécution. Lorsque vous avez besoin pour construire votre objet, vous n'avez pas toutes les informations à ce sujet...
  • Dès le Printemps 4, il est possible de autowire par type générique, voir mettre à jour dans ma réponse.