2017-12-09 11 views
1

私は地元のクラシファイドのWebサイトで作業しています。現在、ページが読み込まれるたびにデータベースが照会されます。キャッシュされたバージョンのサイトにのみ配信

私は他の人気のあるクラシファイドサイトがキャッシュされたサイトを提供していることに気付きました。これにより、読み込み時間とサーバー負荷が大幅に軽減されます。

これをSpring BootまたはTomcatでどうすれば実現できますか? WebサイトのキャッシュをX分ごとに更新する必要があります。

私は私のテンプレートエンジンとしてThymeleafを使用しています

+0

詳細を入力する必要があります。 JSP、Thymeleaf、RESTを使用していますか? –

+0

私はThymeleafを使用しています – Arya

答えて

0

まず、build.gradlepom.xmlであなたの依存関係にorg.springframework.boot:spring-boot-starter-cacheを追加する必要があります。

DataServiceを使用してデータを取得してビューを提供するとします。あなたはそれに@Cacheable注釈を付けることができます。 10分ごとのキャッシュがクリアされます

@EnableCaching 
@Configuration 
public class CacheConfiguration { 

    public static final String CACHE_NAME = "cache"; 

    @Bean 
    public CacheManager cacheManager() { 
      ConcurrentMapCacheManager cacheManager = new ConcurrentMapCacheManager(CACHE_NAME); 
     return cacheManager; 
    } 

    @CacheEvict(allEntries = true, value = CACHE_NAME) 
    @Scheduled(fixedDelay = 10* 60 * 1000 , initialDelay = 500) 
    public void evictCache() {} 


} 

@Service 
class DataService { 

    @Cacheable("cache") 
    String compute() { 
     return "something" 
    } 

} 

次に、あなたは、以下の構成を追加する必要があります。

+0

これはhttps://pastebin.com/zrZYCLNAを取得するための私のサービスの1つですが、https://pastebin.com/LXYyfPqZを実行すると次のエラーが発生します – Arya

+0

BTWはRAMの代わりにハードディスクにキャッシュ? – Arya

+0

キャッシュの名前を '@ Cacheable'に追加する必要があります。私はそれを忘れてしまった。あなたが疑問に思うなら、 'CacheManager'永続キャッシュを提供する必要があります。あなたはそれについて別の質問をすることができます。 –

関連する問題