配置中心简要设计

数据格式统一采用key-value。

配置分组,可选,比如支持2级系统分类。分布式配置中心,可以有。个人小项目,可以简化去掉。

1.开关:降级开关,功能开关
openPostAdd 1
openPostDelete 0

key可以全局唯一,也可以某个分类下唯一。
个人觉得,全局唯一比较好,key的名称可以用“系统+key名”的方式,比如 cms.openPostAdd。

2.常量配置
cms.defaultPageSize 10
seo.companyName=小雷科技
seo.description=懂商业的技术合伙人
cms.recommendArticleIdList=102,103,108

3.复杂配置,数据字典
redis.conf={"maxActive":"10","maxIdle":"8","maxWait":"10000","masterConfString":"192.168.0.2:6379"}
web.homePage.firstFloor={src:1,title=123}

 

表结构

CREATE TABLE `jtn_config` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `key` varchar(50) NOT NULL DEFAULT '',
  `value` varchar(500) DEFAULT NULL,
  `remark` varchar(255) DEFAULT NULL,
  `createTime` datetime DEFAULT NULL,
  `updateTime` datetime DEFAULT NULL,
  `yn` int(11) NOT NULL DEFAULT '1',
  `categoryId` int(11) DEFAULT NULL COMMENT '保留',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统配置';

Java代码

public class JtnConfigManager extends BaseManager<JtnConfig> {

	public static JtnConfig me = new JtnConfig();

	private JtnConfig dao = new JtnConfig().dao();

	private static Logger logger=LoggerFactory.getLogger(JtnConfigManager.class);

	public String  getValue(String key){
		return null;
	}
	
	public boolean isOpenSwitch(String key) {
        String openSwitch = getValue(key);
        return Boolean.valueOf(openSwitch);
    }
	
	public void save(String key,String value,String remark) {
		
	}
	
	@Override
	public JtnConfig getDao() {
		return dao;
	}
}