# ccod-config-starter **Repository Path**: ifccod/ccod-config-starter ## Basic Information - **Project Name**: ccod-config-starter - **Description**: 不依赖三方组件的动态配置中心,支持应用运行动态修改配置,支持自定义扩展 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-28 - **Last Updated**: 2022-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ccod-config-starter #### 软件架构 软件架构说明 1.CustomMadeEnvironmentPostProcessor为切入点,加载自定义的远程数据源到spring environment当中 2.CustomRefreshBeanPostProcessor在容器启动扫描bean带@value注解的解析字段元数据并加入待刷新缓存bean列表 3.DoRefreshJob为自动刷新实现类,两秒执行一次,会调用资源加载器的customSourceProvide.refresh()方法获取需要变更的key列表,注:为了支持spring el表达式的解析功能,需要在refresh方法中把变更的字段信息重新写入environment当中 4.本项目主要针对小型项目开发,为了不引入三方依赖,支持多远程数据源聚合,可自由扩展redis,mysql远程数据源 5.刷新部分逻辑借鉴apollo,感兴趣可见https://gitee.com/apolloconfig/apollo?_from=gitee_search #### 安装教程 基于springboot项目 install 本项目后,在自己项目中引入maven依赖 为了避免依赖冲突,建议在最上层model引入依赖 ``` com.ccod.refresh ccod-refresh-starter 1.0.0 ``` #### 使用说明 项目基于springboot 1. 配置中新增配置 ccod.custom.enable=true 则代表自动刷新功能的开启,否则将不生效 2. 项目远程数据来源接口为com.ccod.refresh.provide.CustomSourceProvide,默认实现为com.ccod.refresh.provide.impl.DefaultRedisSourceProvide,可通过配置【ccod.custom.refresh.provide】指定全类名来替换,可配置多个,逗号隔开 | 配置名称 | 默认值 | 说明 | |:-----|-----:|:-------------------------------------------------------------------------:| | ccod.custom.enable | true | 功能全局开关,为true代表开启 | | ccod.custom.refresh.provide | com.ccod.refresh.provide.impl.DefaultRedisSourceProvide | 远程数据源加载类,可修改此配置执行任意加载资源逻辑,可参考com.ccod.refresh.provide.CustomSourceProvide | | ccod.custom.ann.parse | com.ccod.refresh.parse.impl.SpringValueParse | spring注解解析器,默认实现为@value注解解析器,可配置多个逗号隔开,可对其他资源注解进行扩展 | #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request