public class EhCacheFactoryBean extends CacheConfiguration implements FactoryBean<Ehcache>, BeanNameAware, InitializingBean
CacheManager
内のキャッシュ領域を表す、名前付き EhCache Cache
インスタンス(または Ehcache
インターフェースを実装するデコレーター)を作成する FactoryBean
。指定された名前付きキャッシュがキャッシュ構成記述子で構成されていない場合、この FactoryBean は、指定された名前と指定されたキャッシュプロパティで Cache のインスタンスを構築し、後で取得するために CacheManager に追加します。構成時に一部またはすべてのプロパティが設定されていない場合、この FactoryBean はデフォルトを使用します。
メモ: 指定された Cache インスタンスが見つかった場合、プロパティは無視され、Cache インスタンスが CacheManager から取得されます。
メモ: Spring 5.0 以降、Spring の EhCache サポートには EhCache 2.10 以上が必要です。
setCacheManager(net.sf.ehcache.CacheManager)
, EhCacheManagerFactoryBean
, Cache
CacheConfiguration.BootstrapCacheLoaderFactoryConfiguration, CacheConfiguration.CacheDecoratorFactoryConfiguration, CacheConfiguration.CacheEventListenerFactoryConfiguration, CacheConfiguration.CacheExceptionHandlerFactoryConfiguration, CacheConfiguration.CacheExtensionFactoryConfiguration, CacheConfiguration.CacheLoaderFactoryConfiguration, CacheConfiguration.TransactionalMode
修飾子と型 | フィールドと説明 |
---|---|
protected Log | logger |
bootstrapCacheLoaderFactoryConfiguration, cacheDecoratorConfigurations, cacheEventListenerConfigurations, cacheExceptionHandlerFactoryConfiguration, cacheExtensionConfigurations, cacheLoaderConfigurations, cacheLoaderTimeoutMillis, cacheWriterConfiguration, clearOnFlush, DEFAULT_CACHE_WRITER_CONFIGURATION, DEFAULT_CLEAR_ON_FLUSH, DEFAULT_COPY_ON_READ, DEFAULT_COPY_ON_WRITE, DEFAULT_COPY_STRATEGY_CONFIGURATION, DEFAULT_DISK_ACCESS_STRIPES, DEFAULT_DISK_PERSISTENT, DEFAULT_ETERNAL_VALUE, DEFAULT_EXPIRY_THREAD_INTERVAL_SECONDS, DEFAULT_LOGGING, DEFAULT_MAX_BYTES_OFF_HEAP, DEFAULT_MAX_BYTES_ON_DISK, DEFAULT_MAX_BYTES_ON_HEAP, DEFAULT_MAX_ELEMENTS_ON_DISK, DEFAULT_MAX_ENTRIES_IN_CACHE, DEFAULT_MEMORY_STORE_EVICTION_POLICY, DEFAULT_SPOOL_BUFFER_SIZE, DEFAULT_STATISTICS, DEFAULT_TRANSACTIONAL_MODE, DEFAULT_TTI, DEFAULT_TTL, diskAccessStripes, diskExpiryThreadIntervalSeconds, diskPersistent, diskSpoolBufferSizeMB, eternal, listeners, logging, maxElementsOnDisk, maxEntriesInCache, maxEntriesLocalHeap, memoryStoreEvictionPolicy, name, overflowToDisk, overflowToOffHeap, pinningConfiguration, terracottaConfiguration, timeToIdleSeconds, timeToLiveSeconds
コンストラクターと説明 |
---|
EhCacheFactoryBean() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterPropertiesSet() |
protected Cache | createCache() この FactoryBean の構成に基づいて生の Cache オブジェクトを作成します。 |
protected Ehcache | decorateCache(Ehcache cache) 必要に応じて、指定されたキャッシュを装飾します。 |
Ehcache | getObject() このファクトリによって管理されるオブジェクトのインスタンス(おそらく共有または独立)を返します。 |
java.lang.Class<? extends Ehcache> | getObjectType() afterPropertiesSet() によって編成された createCache() および decorateCache(Ehcache) のロジックに基づいて、getObject() から返される特定の Ehcache 実装を予測します。 |
boolean | isSingleton() このファクトリによって管理されるオブジェクトはシングルトンですか? つまり、 FactoryBean.getObject() は常に同じオブジェクト(キャッシュ可能な参照)を返しますか? |
void | setBeanName(java.lang.String name) この Bean を作成した Bean ファクトリで Bean の名前を設定します。 |
void | setBlocking(boolean blocking) リクエストされた要素が作成されるまで読み取り試行をブロックするブロッキングキャッシュを使用するかどうかを設定します。 |
void | setBootstrapCacheLoader(BootstrapCacheLoader bootstrapCacheLoader) 存在する場合、このキャッシュに EhCache BootstrapCacheLoader を設定します。 |
void | setCacheEntryFactory(CacheEntryFactory cacheEntryFactory) EhCache CacheEntryFactory を設定して、自己生成キャッシュに使用します。 |
void | setCacheEventListeners(java.util.Set<CacheEventListener> cacheEventListeners) このキャッシュに登録する EhCache cache event listeners を指定します。 |
void | setCacheManager(CacheManager cacheManager) 名前付きキャッシュインスタンスを取得する CacheManager を設定します。 |
void | setCacheName(java.lang.String cacheName) キャッシュインスタンスを取得または作成する名前を設定します。 |
void | setDisabled(boolean disabled) このキャッシュを無効としてマークする必要があるかどうかを設定します。 |
void | setDiskSpoolBufferSize(int diskSpoolBufferSize) ディスクスプールバッファーサイズ(MB 単位)を設定します。 |
void | setTimeToIdle(int timeToIdle) 時間をアイドルに設定します。 |
void | setTimeToLive(int timeToLive) 生存時間を設定します。 |
addBootstrapCacheLoaderFactory, addCacheDecoratorFactory, addCacheEventListenerFactory, addCacheExceptionHandlerFactory, addCacheExtensionFactory, addCacheLoaderFactory, addCacheWriter, addConfigurationListener, addCopyStrategy, addDynamicSearchListener, addElementValueComparator, addPersistence, addPinning, addSearchable, addSizeOfPolicy, addTerracotta, bootstrapCacheLoaderFactory, cacheEventListenerFactory, cacheExceptionHandlerFactory, cacheExtensionFactory, cacheLoaderFactory, cacheWriter, clearOnFlush, clone, copyOnRead, copyOnWrite, diskAccessStripes, diskExpiryThreadIntervalSeconds, diskPersistent, diskSpoolBufferSizeMB, dynamicAttributeExtractor, eternal, freezeConfiguration, getBootstrapCacheLoaderFactoryConfiguration, getCacheDecoratorConfigurations, getCacheEventListenerConfigurations, getCacheExceptionHandlerFactoryConfiguration, getCacheExtensionConfigurations, getCacheLoaderConfigurations, getCacheLoaderTimeoutMillis, getCacheWriterConfiguration, getClassLoader, getCopyStrategy, getCopyStrategyConfiguration, getDiskAccessStripes, getDiskExpiryThreadIntervalSeconds, getDiskSpoolBufferSizeMB, getDynamicExtractor, getElementValueComparatorConfiguration, getLogging, getMaxBytesLocalDisk, getMaxBytesLocalDiskAsString, getMaxBytesLocalDiskPercentage, getMaxBytesLocalHeap, getMaxBytesLocalHeapAsString, getMaxBytesLocalHeapPercentage, getMaxBytesLocalOffHeap, getMaxBytesLocalOffHeapAsString, getMaxBytesLocalOffHeapPercentage, getMaxElementsInMemory, getMaxElementsOnDisk, getMaxEntriesInCache, getMaxEntriesLocalDisk, getMaxEntriesLocalHeap, getMaxMemoryOffHeap, getMaxMemoryOffHeapInBytes, getMemoryStoreEvictionPolicy, getName, getPersistenceConfiguration, getPinningConfiguration, getSearchable, getSearchAttributes, getSizeOfPolicyConfiguration, getStatistics, getTerracottaConfiguration, getTerracottaConsistency, getTimeToIdleSeconds, getTimeToLiveSeconds, getTransactionalMode, internalSetDiskCapacity, internalSetEternal, internalSetLogging, internalSetMaxBytesLocalOffheap, internalSetMaxEntriesInCache, internalSetMemCapacity, internalSetMemCapacityInBytes, internalSetOverflowToOffheap, internalSetTimeToIdle, internalSetTimeToLive, isClearOnFlush, isCopyOnRead, isCopyOnWrite, isCountBasedTuned, isDiskPersistent, isEternal, isFrozen, isLocalTransactional, isMaxBytesLocalDiskPercentageSet, isMaxBytesLocalHeapPercentageSet, isMaxBytesLocalOffHeapPercentageSet, isOverflowToDisk, isOverflowToOffHeap, isOverflowToOffHeapSet, isSearchable, isTerracottaClustered, isXaStrictTransactional, isXaTransactional, logging, maxBytesLocalDisk, maxBytesLocalHeap, maxBytesLocalOffHeap, maxElementsInMemory, maxElementsOnDisk, maxEntriesInCache, maxEntriesLocalDisk, maxEntriesLocalHeap, maxMemoryOffHeap, memoryStoreEvictionPolicy, memoryStoreEvictionPolicy, name, overflowToDisk, overflowToOffHeap, persistence, pinning, removeConfigurationListener, searchable, setCacheLoaderTimeoutMillis, setClassLoader, setClearOnFlush, setCopyOnRead, setCopyOnWrite, setDiskAccessStripes, setDiskExpiryThreadIntervalSeconds, setDiskPersistent, setDiskSpoolBufferSizeMB, setDynamicAttributesExtractor, setEternal, setLogging, setMaxBytesLocalDisk, setMaxBytesLocalDisk, setMaxBytesLocalHeap, setMaxBytesLocalHeap, setMaxBytesLocalOffHeap, setMaxBytesLocalOffHeap, setMaxElementsInMemory, setMaxElementsOnDisk, setMaxEntriesInCache, setMaxEntriesLocalDisk, setMaxEntriesLocalHeap, setMaxMemoryOffHeap, setMemoryStoreEvictionPolicy, setMemoryStoreEvictionPolicyFromObject, setName, setOverflowToDisk, setOverflowToOffHeap, setStatistics, setTimeToIdleSeconds, setTimeToLiveSeconds, setTransactionalMode, setupFor, setupFor, sizeOfPolicy, statistics, terracotta, timeoutMillis, timeToIdleSeconds, timeToLiveSeconds, transactionalMode, transactionalMode, validate, validateCompleteConfiguration, validateConfiguration
protected final Log logger
public void setCacheManager(CacheManager cacheManager)
CacheManager.getInstance()
が呼び出されます。特に永続キャッシュの場合は、CacheManager のシャットダウンを適切に処理することをお勧めします。別の EhCacheManagerFactoryBean をセットアップし、この Bean プロパティへの参照を渡します。
EhCache 構成をデフォルト以外の構成場所からロードするには、別個の EhCacheManagerFactoryBean も必要です。
public void setCacheName(java.lang.String cacheName)
public void setTimeToLive(int timeToLive)
public void setTimeToIdle(int timeToIdle)
public void setDiskSpoolBufferSize(int diskSpoolBufferSize)
public void setBlocking(boolean blocking)
自己生成ブロッキングキャッシュを構築する場合は、CacheEntryFactory
の指定を検討してください。
public void setCacheEntryFactory(CacheEntryFactory cacheEntryFactory)
CacheEntryFactory
を設定して、自己生成キャッシュに使用します。そのようなファクトリが指定されている場合、キャッシュは EhCache の SelfPopulatingCache
で装飾されます。 指定されたファクトリの型は UpdatingCacheEntryFactory
にすることができ、これにより UpdatingSelfPopulatingCache
が使用されます。
メモ: そのような自己生成キャッシュは、自動的にブロッキングキャッシュになります。
public void setBootstrapCacheLoader(BootstrapCacheLoader bootstrapCacheLoader)
BootstrapCacheLoader
を設定します。public void setCacheEventListeners(java.util.Set<CacheEventListener> cacheEventListeners)
cache event listeners
を指定します。public void setDisabled(boolean disabled)
public void setBeanName(java.lang.String name)
BeanNameAware
通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。
BeanNameAware
の setBeanName
name
- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String)
メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。public void afterPropertiesSet() throws CacheException
InitializingBean
BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含 BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean
の afterPropertiesSet
CacheException
protected Cache createCache()
protected Ehcache decorateCache(Ehcache cache)
cache
- この FactoryBean の構成に基づいた生の Cache オブジェクト @Nullable public Ehcache getObject()
FactoryBean
BeanFactory
と同様に、これにより、シングルトンとプロトタイプの両方のデザインパターンをサポートできます。
この FactoryBean が呼び出し時にまだ完全に初期化されていない場合(たとえば、循環参照に関係しているため)、対応する FactoryBeanNotInitializedException
をスローします。
Spring 2.0 以降、FactoryBeans は null
オブジェクトを返すことができます。ファクトリはこれを通常の値として使用します。この場合、FactoryBeanNotInitializedException はスローされません。FactoryBean の実装では、必要に応じて FactoryBeanNotInitializedException 自体をすぐにスローすることをお勧めします。
FactoryBean<Ehcache>
の getObject
null
にすることができます)FactoryBeanNotInitializedException
public java.lang.Class<? extends Ehcache> getObjectType()
afterPropertiesSet()
によって編成された createCache()
および decorateCache(Ehcache)
のロジックに基づいて、getObject()
から返される特定の Ehcache
実装を予測します。FactoryBean<Ehcache>
の getObjectType
null
ListableBeanFactory.getBeansOfType(java.lang.Class<T>)
public boolean isSingleton()
FactoryBean
FactoryBean.getObject()
は常に同じオブジェクト(キャッシュ可能な参照)を返しますか? 注意 : FactoryBean がシングルトンオブジェクトを保持することを示す場合、getObject()
から返されたオブジェクトは所有 BeanFactory によってキャッシュされる可能性があります。FactoryBean が常に同じ参照を公開しない限り、true
を返さないでください。
FactoryBean 自体のシングルトンステータスは、通常、所有する BeanFactory によって提供されます。通常、そこではシングルトンとして定義する必要があります。
注意 : false
を返すこのメソッドは、返されるオブジェクトが独立したインスタンスであることを必ずしも示しません。拡張 SmartFactoryBean
インターフェースの実装は、SmartFactoryBean.isPrototype()
メソッドを通じて独立したインスタンスを明示的に示す場合があります。この拡張インターフェースを実装しないプレーンな FactoryBean
実装は、isSingleton()
実装が false
を返す場合、常に独立したインスタンスを返すと単純に想定されます。
FactoryBean
は通常シングルトンインスタンスを管理するため、デフォルトの実装では true
が返されます。
FactoryBean<Ehcache>
の isSingleton
FactoryBean.getObject()
, SmartFactoryBean.isPrototype()