net.sf.ehcache.Cache#initialise メソッドって何してるの?
initialise()メソッドの主な処理
initialise()メソッドの主な処理は、以下のようになります。(ehcache-1.4.1)
- status が Status.STATUS_UNINITIALISED なら、IllegalStateException を発生。
- maxElementsInMemory の値が 0 の場合、「1以上にしたほうがいいよ」と、警告レベルのログを出力する。これは、MemoryStore を使わないと、使う場合の半分の性能になってしまうからとのこと。(それがなぜかは要確認ですね〜)
- isOverflowToDisk が設定されていれば、DiskStore を作成。
- MemoryStore を作成。
- status を Status.STATUS_ALIVE にセット。
- 登録済みの CacheExtension を初期化。
- disableフィールドが true の場合は、警告レベルのログを出力する。
disableフィールドは、インスタンス初期化時セットされるプライベート変数で、システムプロパティ "net.sf.ehcache.disabled" の値が "true"(大文字小文字はどちらでもOK) の場合に true に設定されます。
システムプロパティ "net.sf.ehcache.disabled"
システムプロパティ "net.sf.ehcache.disabled" は、Cache クラスの中で以下のように定義されています。
public static final String NET_SF_EHCACHE_DISABLED = "net.sf.ehcache.disabled";
private boolean disabled
disabled が true の場合は、bootstrap(), put(), putQuiet()が動作しなくなります。
initialise()メソッドまとめ
ということで、initialize()メソッドは、キャッシュの基本的な初期化を行っていることがわかります。当然、スレッドセーフです。