藉助於Spring,我可以自動裝配具有以下屬性的bean:在Spring中,如何使用ClassPathXmlApplicationContext獲取EntityManager?
@PersistenceContext(unitName="foo") private EntityManager em;
使用下面我可以手動自動裝配豆「someBean」:
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext("META-INF/applicationContext.xml");
AutowireCapableBeanFactory fac = ctx.getAutowireCapableBeanFactory();
fac.autowireBean(someBean);
然而,我無法弄清楚如何直接獲取特定的EntityManager。用例是我想編寫一個測試,它將獲取所有EntityManager對象並在其中執行簡單查詢以確保它們的設置正確。爲此,我需要能夠從應用程序上下文中獲取所有EntityManager對象。我怎樣才能做到這一點?
以下不起作用。它返回一個空的地圖。
Map<String,EntityManager> ems = ctx.getBeansOfType(EntityManager.class);
這是一種罕見的情況,我需要根據傳入的值獲取不同的EntityManager。它只是一個單元測試,它通過實體管理器列表並確保它們全部正確設置。 – HappyEngineer 2009-12-12 00:36:19
啊,單元測試 - 確定:) – Bozho 2009-12-12 06:59:46