11.5.5. カスタムサービス
11.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へ追加します。- サービスクラスをインスタンス化し、
addServiceメソッドよりorg.hibernate.service.ServiceRegistryBuilderへ追加します。
サービスを追加する方法とイニシエーターを追加する方法はいずれも、レジストリーの拡張 (新しいサービスロールの追加) やサービスのオーバーライド (サービス実装の置換) に対して有効です。
例11.22 ServiceRegistryBuilder を用いた既存サービスのカスタマーサービスへの置き換え