【问题标题】:Java Service Class loader called multiple times多次调用 Java 服务类加载器
【发布时间】:2021-02-11 17:17:15
【问题描述】:

我在一个多模块项目中创建了一个服务类加载器,同时还使用 Hibernate Integrator 来运行一些 DB 脚本,但我注意到应用程序进入了我的 Integrator 类 5 次。

我实现了以下类:

public class FlywayIntegrator implements Integrator {
    @Override
    public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory,
            SessionFactoryServiceRegistry serviceRegistry) {
        try {
            // some code
        } catch (Exception e) {
            logger.error("Log", e);
        }
    }
    
    @Override
    public void disintegrate(SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) {
        // TODO Auto-generated method stub
    }
}

还在文件 \src\main\resources\META-INF\services\org.hibernate.integrator.spi.Integrator 下添加了条目:

my.package.FlywayIntegrator

现在,在部署我的应用程序时,我的类的“集成”方法将重复执行 5 次。我不明白为什么它被触发了这么多次。欢迎任何想法。

注意: 我在 5 个不同的模块中有 5 个不同的 persistence.xml 文件,我不确定是否存在关系。包含 Integrator 的模块有自己的 persistence.xml

【问题讨论】:

    标签: java hibernate spi serviceloader integrator


    【解决方案1】:

    对于每个包含持久性文件的模块,都会调用一次集成器。就我而言,我有 5 个模块,包含 5 个持久性文件。

    【讨论】:

      猜你喜欢
      • 2014-03-10
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-04
      相关资源
      最近更新 更多