2017-08-26 11 views
1

注釈を使用してEHcacheを設定する方法はありますか?注釈付きEhCache設定 - 休止状態

キャッシュを有効にしたSpring/Hibernateプロジェクトがあります。現在、私はehcache.xmlを使用してエンティティのキ​​ャッシュ方法の設定を定義しています。これは代わりに、このXMLファイルを使用しての@Entityの上に注釈と同じことを行うことが可能であった場合、私は思っていた

<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/ehcache"/> 

    <defaultCache 
     . 
     . 
     . 
    </defaultCache> 

    <cache name="exmaple.model.User" maxEntriesLocalHeap="1000" eternal="false" 
      timeToIdleSeconds="120" timeToLiveSeconds="300"> 
     <persistence strategy="localTempSwap"/> 
    </cache> 

</ehcache> 

これは私のehcache.xmlがどのように見えるかです。

答えて

2

2つの部分があります。 1つはSpring CacheとHibernateです。どちらもメソッドやエンティティをキャッシュする必要があることを示す注釈を提供します。

例は、Spring Cacheの@Cacheableです。

次に、あなたはehcache.xmlです。これは、キャッシュ自体を構成することです。注釈によるものではありません。しかし、それはプログラム的に行うことができます。 Ehcache 3はビルダーを使って簡単にできます。例hereが表示されます。このサンプルでは、​​Spring CacheとHibernateの第2レベルのキャッシングも使用しています。

Ehcache 2(使用している)にはBuilderがありません。 CacheManager.newInstance(Configuration)に電話をかけ、必要な設定をしておく必要があります。残念ながら、私は手元に例がない。

+0

コントロールがプログラムに変換されているようですが、XMLを使用するよりも複雑に思えます。あなたが提供したソリューションは本当にありがたく思っています。これは、いつか将来必要な場合に備えて、Javaからキャッシュを実装する方法を教えてくれます。 –

+0

他の誰かがアノテーションを使って方法を見つけた場合に、これを回答として受け入れる前に、私は数日待つでしょう:) –

+0

あなたに幸運を祈ります;-) – Henri