将不需要改动的配置写进缓存

工程启动的时候去数据库查询配置,然后将配置数据存到本地缓存

优点:后续就不用去数据库查询。
缺点:修改配置表要重启进程。

数据库层忽略

服务层:工程启动时将数据库表数据存进缓存对象

import com.c26.project.payWX.common.ContextCache;
import com.c26.project.payWX.dao.PayBizWxDao;
import com.c26.project.payWX.entity.PayBizWx;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import javax.annotation.PostConstruct;
import java.util.List;

@SuppressWarnings("unchecked")
@Service
public class PayBizService {

    @Autowired
    PayBizWxDao payBizWxDao;

    /***
     *  工程启动执行
     *  查询数据库,将集合存进本地缓存
     */
    @PostConstruct
    public void cachePayBiz() {
        List<PayBizWx> payBizWxList = payBizWxDao.getPayBizWxList();

        if (!CollectionUtils.isEmpty(payBizWxList)) {
            for (PayBizWx payBizWx : payBizWxList) {
                ContextCache.insertWxPayBiz(new PayBizWx(payBizWx.getAppId(), payBizWx.getAppKey(), payBizWx.getMchId(), payBizWx.getSandbox()));
            }
        }
    }
}

本地缓存文件:将数据根据appId为key存进缓存


import com.c26.project.payWX.entity.PayBizWx;
import org.springframework.util.StringUtils;

import java.util.HashMap;
import java.util.Map;

public class ContextCache {
    private static Map<String, PayBizWx> payBizWxList = new HashMap<>();

    /***
     *  根据appId 获取配置参数
     *  @param appId     应用ID
     */
    public static PayBizWx getWxPayBiz(String appId) {
        return payBizWxList.get(appId);
    }

    /***
     *  将配置数据以appId
     */
    public static void insertWxPayBiz(PayBizWx payBizWx) {
        if (null != payBizWx && !StringUtils.isEmpty(payBizWx.getAppId()) && !StringUtils.isEmpty(payBizWx.getAppKey()) && !StringUtils.isEmpty(payBizWx.getMchId())) {
            if (!payBizWxList.containsKey(payBizWx.getAppId())) {
                payBizWxList.put(payBizWx.getAppId(), payBizWx);
            }
        }
    }
}

使用方式:

PayBizWx payBizWx = ContextCache.getWxPayBiz(appId);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值