2017-07-28 28 views
0

私はSpringブートアプリケーションを作成し、MavenプロジェクトでEhCacheを実装しました。次のようにEhcacheのための私のXML設定ファイルは次のとおりです。Eh Springブート時のキャッシュ有効期限

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="ehcache.xsd" 
updateCheck="true" 
monitoring="autodetect" 
dynamicConfig="true"> 

<diskStore path="java.io.tmpdir" /> 

<cache name="labCabSourceInfoCache" 
    maxEntriesLocalHeap="10000" 
    maxEntriesLocalDisk="1000" 
    eternal="false" 
    diskSpoolBufferSizeMB="20" 
    timeToIdleSeconds="300" timeToLiveSeconds="300" 
    memoryStoreEvictionPolicy="LFU" 
    transactionalMode="off"> 
    <persistence strategy="localTempSwap" /> 
</cache> 

私はパラメータtimeToIdleSecondsなど& timeToLiveSeconds

に300として有効期限を設定している。しかし、それは私のために動作しません。私はキャッシュ実装のために構成Beanを使用しませんでした。私はキャッシュのために使用されるメソッドの@Cacheable注釈を使用します。

@Cacheable(value="labCabSourceInfoCache", key="#labAlias.concat(#Account)") 
public String findLabCabSourceInfo(String labAlias, String Account) { 
    try { 
     //codes return "some string" 
    } catch (Exception e) { } return null; 
} 

なぜ追い出されないのですか?

+0

@Cacheable注釈であなたのメソッドの1つを投稿できますか? –

+0

私のコードは今見えますか? –

+0

「動作しない」ものをもう少し説明できますか?容量の限界に達したときにも削除され、クリアされると明示的に削除する必要があります。用語は「期限が切れる」と私はあなたがそれが働いているか否かをどのように評価するのだろうかと思います。 –

答えて

0

キャッシング注釈の処理を有効にする必要があります。 メインクラスに@EnableCachingを追加できますか?チュートリアル https://spring.io/guides/gs/caching/

@EnableCaching注釈から

は パブリックメソッドにキャッシング注釈の存在のために毎年春Beanを検査するポストプロセッサをトリガします。そのような注釈が見つかった場合、プロキシは自動的にメソッド呼び出しを代行受信し、それに応じてキャッシュ動作を処理します。

また、次のコードを追加し、アプリケーションで作成されたキャッシュの詳細であるJconsoleを分析することができます。

@Bean(initMethod="init") 
@Autowired 
public ManagementService managementService(CacheManager cacheManager, 
       MBeanServer mBeanServer) { 
     return new ManagementService(cacheManager, mBeanServer, true, true,true, true); 
} 
関連する問題