[英]Execute initialization code in EJB3.1
我目前在使用Spring多年后遷移到EJB3.1。 我想在EJB中實現的一件事是我的MigrationManager,我找不到匹配的模式。 在Spring中,我有一個處理數據庫模式和數據遷移的bean。 為此,我實現了一個Spring BeanFactoryPostProcessor,因為這樣我注入了數據庫連接,但JPA系統尚未初始化。 所以我可以執行所有遷移步驟,然后讓應用程序完成開始。
如何在EJB3.1中執行類似的操作(使用CDI ...如果這很重要)
克里斯
這是從EJB運行一些初始化代碼的方法:
@Singleton
@Startup
public class MigrationManager {
@PostConstruct
public void migrate() {
// do work
}
}
您不需要單獨的應用程序(如上面的評論所示)。
EntityManagers懶得實例化,所以只要你不將EntityManager
注入到其他一些啟動代碼中,這就應該讓你有機會在EntityManager
實際訪問數據庫之前更新你的數據庫模式。
順便說一句,對於數據庫模式遷移,我建議使用Liquibase ,它可以由ServletContextListener
觸發。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.