Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

13.5.6.3. BootstrapRegistry サービス

org.hibernate.service.classloading.spi.ClassLoaderService
Hibernate はクラスローダーと対話する必要があります。ただし、Hibernate または任意のライブラリーと対話する方法は、アプリケーションをホストしているランタイム環境によって異なります。アプリケーションサーバー、OSGi コンテナー、およびその他のモジュラークラスローディングシステムでは、非常に特殊なクラスローディング要件が課せられています。このサービスは、この環境的な複雑性からの抽象化を Hibernate に提供します。また、同様に重要な点として、単一スワップ可能なコンポーネントでこれを実行します。
クラスローダーとの対話では、Hibernate には以下の機能が必要になります。
  • アプリケーションクラスを検索する機能
  • インテグレーションクラスを検索する機能
  • リソース (プロパティーファイル、xml ファイルなど) を見つける機能
  • java.util.ServiceLoader をロードする機能
注記
現在、アプリケーションクラスをロードする機能と、統合クラスをロードする機能が、サービス上の単一の load class 機能に統合されています。これは、今後のリリースで変更される可能性があります。
org.hibernate.integrator.spi.IntegratorService
アプリケーション、アドオン、およびその他のモジュールは Hibernate と統合する必要があります。前述の方法では、各モジュールの登録を調整するために、通常アプリケーションなどのコンポーネントが必要でした。この登録は、各モジュールのインテグレーターに代わって実施されました。
このサービスは、検出機能に重点を置いています。これは、によって提供される標準の Javajava.util.ServiceLoader 機能を活用します。 org.hibernate.service.classloading.spi.ClassLoaderService の実装を発見するために org.hibernate.integrator.spi.Integrator contract.
インテグレーターは、単に /META-INF/services/org.hibernate.integrator.spi.Integrator という名前のファイルを定義し、これをクラスパスで利用できるようにします。
このファイルは、java.util.ServiceLoader メカニズムによって使用されます。これは、1 行ずつ org.hibernate.integrator.spi.Integrator インターフェースを実装するクラスの完全修飾名を一覧表示します。