springboot系列(6) -- 整合啓動加載緩存到容器

1.功能描述

springboot項目啓動加載緩存,緩存動態配置到數據庫,可以修改,刪除,項目啓動可以加載整合配置表數據到緩存

2.使用api

在這裏插入圖片描述
五個方法如上圖

3.對應數據庫表

CREATE TABLE `sys_config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
  `type` tinyint(3) DEFAULT '10' COMMENT '類型:10:系統關鍵參數;20:業務參數;30:協議參數;40:H5參數;50:備註參數;60:短信參數;80:第三方',
  `name` varchar(30) DEFAULT '' COMMENT '參數名稱',
  `code` varchar(50) DEFAULT '' COMMENT '編號',
  `value` varchar(2048) DEFAULT '' COMMENT '參數對應的值',
  `status` tinyint(1) DEFAULT '0' COMMENT '狀態  0不啓用  1啓用',
  `remark` varchar(128) DEFAULT NULL COMMENT '備註說明',
  `creator` int(11) DEFAULT NULL COMMENT '創建者',
  PRIMARY KEY (`id`),
  UNIQUE KEY `code` (`code`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='系統配置表';

項目啓動會加載整個表格數據到緩存

4.上代碼

配置類代碼:

/**
 * @Auther: corey
 * @Date: 2020/6/19 09:52
 * @Description: 加載緩存啓動
 */
@Configuration
public class ConfigCacheUtils {

    private final static Logger log = LoggerFactory.getLogger(ConfigCacheUtils.class);

    @Resource
    private com.itcorey.mapper.sysConfigMapper sysConfigMapper;


    @Bean
    public Map<String, Object>  ConfigCache() {
        log.info("configMap緩存。。。開始加載緩存");
        Map<String, Object> configMap = new HashMap<String, Object>();
        List<sysConfig> sysConfigs = sysConfigMapper.findAll();
        log.info("sysConfig {}", JSON.toJSON(sysConfigs));
        for (sysConfig sysConfig : sysConfigs) {
            if (null != sysConfig && StringUtil.isNotBlank(sysConfig.getCode())) {
                configMap.put(sysConfig.getCode(), sysConfig.getValue());
            }
        }
        log.info("加載成功。。。。。。");
        Global.configMap = new HashMap<String, Object>();
        Global.configMap.putAll(configMap);
        return configMap;
    }
}

Global 類:

/**
 *啓動加載緩存
 */
public class Global {

		public static Map<String, Object> configMap;

		public static Map<String, Object> msg_template_Map;

		public static int getInt(String key){
			return NumberUtil.getInt(StringUtil.isNull(configMap.get(key)));
		}

		public static double getDouble(String key){
			return NumberUtil.getDouble(StringUtil.isNull(configMap.get(key)));
		}

		public static String getValue(String key) {
			return StringUtil.isNull(configMap.get(key));
		}

		public static Object getObject(String key){
			return configMap.get(key);
		}

		public static String getMsgTempLate(String key) {
			return StringUtil.isNull(msg_template_Map.get(key));
		}

}

sysConfigMapper 就不貼出來類,就是單純的查詢數據庫的mapper。稍後會把項目的地址貼出來,喜歡可以clone下來自己玩

5.測試啓動加載緩存

在這裏插入圖片描述
我啓動後將數據存到緩存,當然也可以啓動加載到緩存,下篇文章告訴你整合redis

6.項目地址:

https://github.com/coreyxuy/springboot-corey.git

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章