Au Printemps, comment puis-je utiliser un ClassPathXmlApplicationContext pour obtenir un EntityManager?

Avec le Printemps, je peux autowire un haricot avec la propriété suivante:

@PersistenceContext(unitName="foo") private EntityManager em;

À l'aide de la suite de je peux manuellement autowire la fève "someBean":

ClassPathXmlApplicationContext ctx = 
      new ClassPathXmlApplicationContext("META-INF/applicationContext.xml");
AutowireCapableBeanFactory fac = ctx.getAutowireCapableBeanFactory();
fac.autowireBean(someBean);

Cependant, je ne peux pas comprendre comment l'obtenir directement un particulier EntityManager. Le cas d'utilisation est que je veux écrire un test qui vous permettra d'obtenir tous les EntityManager objets et d'exécuter des requêtes simples en eux pour s'assurer qu'ils sont correctement configurés. Pour ce faire j'ai besoin d'être en mesure d'obtenir toutes EntityManager des objets à partir du contexte de l'application. Comment puis-je le faire?

Le code suivant ne fonctionne pas. Il retourne une carte vide.

Map<String,EntityManager> ems = ctx.getBeansOfType(EntityManager.class);

OriginalL'auteur HappyEngineer | 2009-12-11