是什麼@Autowired VS @PersistenceContext EntityManager的爲豆
@Autowired
private EntityManager em;
和
@PersitenceContext
private EntityManager em;
兩種選項都在我的應用程序工作的區別,但我可以打破使用@Autowired註解的東西嗎?
是什麼@Autowired VS @PersistenceContext EntityManager的爲豆
@Autowired
private EntityManager em;
和
@PersitenceContext
private EntityManager em;
兩種選項都在我的應用程序工作的區別,但我可以打破使用@Autowired註解的東西嗎?
@PersistenceContext
是爲特定目的設計的JPA標準註釋。而@Autowired
用於Spring中的任何依賴注入。使用@PersistenceContext
可以更好地控制上下文,因爲它使您能夠指定可選元素,例如名稱,屬性
@PersistenceContext
允許您指定要使用哪個持久性單元。您的項目可能有多個數據源連接到不同的DB和@PersistenceContext
讓你說你要在
檢查的解釋工作在這裏哪一個: http://www.coderanch.com/t/481448/java-EJB-SCBCD/certification/unitName-PersistenceContext
@PersistenceContext:
做不是退貨實體經理實例
返回 container-manag代理服務器,代表應用程序代碼獲取和發佈預留上下文
我知道這一點,但是在應用程序中有什麼影響?考慮使用Spring的標準** @ Transactional **。當使用** @ Autowired **時,會發生與使用** @ PersistenceContext **相同的行爲,並且每個應用程序事務具有em? –
我認爲使用'@PersistenceContext'通常是最好的實踐,因爲它更接近地描述了你正試圖實現的依賴注入的類型。此外,它提供了專用於EntityManager的可選參數,當您有多個EntityManager時,這可能很有用。在功能上,我相信你可以用'@ Autowired'實現相同的注入,但我會推薦使用這樣設計的註釋。 – Alex
這個http://blog.jhades.org/how-does-spring-transactional-really-work/可以比我更好地解釋它。 – Alex