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