SpringBoot 加密数据库连接信息
背景 : 随着项目规模与人员的增长,原本放在代码配置文件中的数据库用户名密码就显的不太合适。
目标 : 开发人员在代码配置中不需要配置用户名密码,或者配置的用户名密码是一种伪码.
思路:提供通用jar包依赖,给到业务方,在业务代码启动的时候,覆盖/初始化其中的用户名密码,甚至数据库host
1:改动后的springboot 数据库配置文件,如下图所示,已经没有相关数据库用户名与密码的配置,只有自定义的 XXX,YYY作为查找KEY
2: 修改启动类 ,如下图所示,启动的时候,多加载注解
@EnableDataSourcePlaceHolder
3: 创建DataSourcePlaceHolderPostProcessor类
可以在DataSource创建之后,拿到该对象,可以根据url值中的XXX/YYY 到配置中心或者本地配置中获取相关的信息,补充DataSource的参数
4: 其他并没有什么变更,按照原先使用的方式即可。