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

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