因为我还没有收到我的 question 的答复。我决定尝试寻找不同的解决方案。
所以,我有一个部署在 JBoss 服务器上的 Java EE 应用程序,我询问是否有一种方法可以在用户开始与应用程序交互之前使用一些数据初始化数据库。显然,启动时执行的单例 bean 是有问题的(参见我的其他 question )
最佳答案
我不知道为什么你的其他问题中的代码失败,但你可以尝试一些方法:
- 假设您使用 Maven,您可以创建一个单元测试来使用 JPA 填充数据库。缺点是,当您使用 Maven 构建时,测试将始终被执行(除非您指定 -DskipTests)
- 您可以尝试的另一件事是使用 ServletContextListener 接口(interface)。
@WebListener
public class MyAppServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
// Initialize database here or create your
// own event for application startup and fire it
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
// Do nothing here
}
}
编辑:
- 第三种方法:您可以使用 liquibase ( http://www.liquibase.org/ )。然后有这样的东西:http://www.liquibase.org/documentation/changes/insert.html
关于java - Jboss:用数据初始化数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24483998/