SSMがサービス開始時にデータをキャッシュする

3016 ワード

シーンを使用:
ページはバックエンドのデータ量が非常に大きいインタフェースを呼び出し、時間が長い場合、プロジェクトにはバッファ機能(例えばredis)がないため、リアルタイムでデータを取得するたびにお客様の体験に非常に悪い場合は、以下のコードを押して、初期化時にデータベースにデータを取得し、mapまたはlistにカプセル化することができます.の中で、これでいつ使って直接データを得ることができます.
package com.jeeplus.modules.ins.cache;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;

/**
 *             
 * @author    
 *
 */
@Component
public class CacheListener implements ApplicationListener{
    private Logger log = LoggerFactory.getLogger(CacheListener.class);

    
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        if(event.getApplicationContext().getParent() == null){
        log.info("      ,      ...");
        CacheManager.setDict();
        log.info("        ");
        CacheManager.setFundList();
        log.info("        ");
        CacheManager.setBankList();
        log.info("    Ta  ");
        CacheManager.setTaList();
        
        }
    }
    
}

 
考え方:サーブレットを例にとる→init()メソッドでデータベースを呼び出してデータを取り、クライアントがdoPost()またはdoPost()を呼び出すとinit()メソッドで取得したデータを手に入れることができます.
転載先:https://www.cnblogs.com/cuijiade/p/9268265.html