7.2. SPI インターフェース
Cache インターフェースや Node インターフェースの他にも、 JBoss Cache は JBoss Cache 内部で更なる制御を提供するより強力な CacheSPI および NodeSPI インターフェースを公開します。 これらのインターフェースは一般的な使用を目的としたものではありませんが、 JBoss Cache を拡張および強化したいユーザーや、 カスタムの Interceptor インスタンスや CacheLoader インスタンスを作成したいユーザー向けのインターフェースです。
図7.2 SPI インターフェース
CacheSPI インターフェースを作成することはできませんが、 インターフェース上の setCache(CacheSPI cache) メソッドにより Interceptor 実装や CacheLoader 実装へ挿入されます。 CacheSPI は Cache を拡張するため、 基本的な API のすべての機能も使用することができます。
同様に、
NodeSPI インターフェースも作成することはできませんが、 前述の通り取得された CacheSPI 上で操作を実行すると取得されます。 例えば、 Cache.getRoot() : Node は CacheSPI.getRoot() : NodeSPI としてオーバーライドされます。
インターフェースの継承は、 今後維持が保証されるコントラクトではないため、
Cache や Node を SPI へ直接キャストすることは推奨されないだけでなく、 不適切であると見なされます。 逆に、 公開された API は維持が保証されます。