検索

13.5.5. カスタムサービス

download PDF

13.5.5.1. カスタムサービスについて

org.hibernate.service.ServiceRegistry を構築すると、不変とみなされます。このサービス自体は再設定を受け入れる可能性がありますが、ここでの不変性はサービスの追加/置き換えを意味します。そのため、org.hibernate.service.ServiceRegistryBuilder で利用できる別のロールは、これから生成される org.hibernate.service.ServiceRegistry に含まれるサービスの調整を許可することです。
カスタムサービスについて org.hibernate.service.ServiceRegistryBuilder に指示する方法は 2 つあります。
  • org.hibernate.service.spi.BasicServiceInitiator クラスを実装し、サービスクラスのオンデマンド構築を制御し、addInitiator メソッドを使用して org.hibernate.service.ServiceRegistryBuilder に追加します。
  • サービスクラスをインスタンス化し、それを介して org.hibernate.service.ServiceRegistryBuilder に追加するだけです。addService方法。
サービスの追加アプローチまたはイニシエーターの追加アプローチのいずれかが、レジストリーの拡張 (新しいサービ出力ルの追加) およびサービスのオーバーライド (サービス実装の置き換え) に有効です。

例13.22 ServiceRegistryBuilder を使用して、既存のサービスをカスタムサービスに置き換える

   ServiceRegistryBuilder registryBuilder = new ServiceRegistryBuilder( bootstrapServiceRegistry );
   registryBuilder.addService( JdbcServices.class, new FakeJdbcService() ); 
   ServiceRegistry serviceRegistry = registryBuilder.buildServiceRegistry();


   public class FakeJdbcService implements JdbcServices{

       @Override
       public ConnectionProvider getConnectionProvider() {
           return null;
       }

       @Override
       public Dialect getDialect() {
           return null;
       }

       @Override
       public SqlStatementLogger getSqlStatementLogger() {
           return null;
       }

       @Override
       public SqlExceptionHelper getSqlExceptionHelper() {
           return null;
       }

       @Override
       public ExtractedDatabaseMetaData getExtractedMetaDataSupport() {
           return null;
       }

       @Override
       public LobCreator getLobCreator(LobCreationContext lobCreationContext) {
           return null;
       }

       @Override
       public ResultSetWrapper getResultSetWrapper() {
           return null;
       }
   }
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.