5.3.3.2. BootstrapRegistry 服务
org.hibernate.service.classloading.spi.ClassLoaderServiceHibernate 需要与类加载器交互。但是,Hibernate 或任何库与类加载器交互的方式因托管应用的运行时环境而异。应用程序服务器、OSGi 容器和其他模块化类加载系统带来了非常具体的类加载要求。此服务从这种环境复杂性中提供 Hibernate 抽象。更重要的是,它以单一兼容的方式做到这一点。
在与类加载器交互方面,Hibernate 需要以下功能:
- 定位应用程序类的功能
- 定位集成类的功能
- 查找资源(如属性文件和 XML 文件)的功能
加载
java.util.ServiceLoader 的功能注意目前,加载应用类的功能和加载集成类的功能组合到服务的单个负载类功能中。这可能在以后的版本中有所改变。
org.hibernate.integrator.spi.IntegratorService应用程序、附加组件和其他模块需要与 Hibernate 集成。以上方法需要一个组件(通常是应用)来协调各个模块的注册。此注册代表每个模块的集成商进行。
此服务侧重于发现方面。它利用
org.hibernate功能来发现.service.classloading.spi.ClassLoaderService 提供的标准 Java java.util.ServiceLoaderorg.hibernate.integrator.spi.Integrator合同的实施。集成器只需定义一个名为
/META-INF/services/org.hibernate.integrator.spi.Integrator的文件,并使其在类路径中可用。此文件由
java.util.ServiceLoader机制使用。它将列出实施org.hibernate.integrator.spi.Integrator接口的完全限定类名称,每行一个。