SC ConfigServer配置存储改为MySQL或其他数据库
SpringCloud的ConfigServer默认是持久化使用的是git。git有它天然的优势,比如多版本管理、分支管理、提交审核策略等等,但是如果相对其中存储的数据做细粒度的权限控制,就力不从心了。当然,也可以改变使用方式以适应这种特点,但是今天我们要做的是将持久化从git迁移到MySQL上。
查询配置信息
ConfigServer有个接口:org.springframework.cloud.config.server.environment.EnvironmentRepository
这个接口的实现类就是ConfigServer的用来查询配置信息的,方法签名如下:
Environment findOne(String application, String profile, String label);
我们可以仿照已有的实现去自行实现这个接口,在方法实现中查询MySQL
查询实现大致如下:
后端存储配置设计
后端存储采用SpringData + JPA + JPA 的方式,故在此仅介绍实体
因为Spring Cloud Config组件支持application + profile + label 的方式查询配置文件,所以进行沿用,基本能满足生产所需:
使用说明
- pom.xml中添加该插件依赖
- pom.xml中添加MySQL或其他数据库驱动的依赖(该插件依赖于DB)
- 在Config Server组件的application.xml中添加如下两个配置
注意:此处的datasource也可换成任意支持jpa的数据源