SpringBoot 加密数据库连接信息

背景 : 随着项目规模与人员的增长,原本放在代码配置文件中的数据库用户名密码就显的不太合适。

目标 : 开发人员在代码配置中不需要配置用户名密码,或者配置的用户名密码是一种伪码.

思路:提供通用jar包依赖,给到业务方,在业务代码启动的时候,覆盖/初始化其中的用户名密码,甚至数据库host

1:改动后的springboot 数据库配置文件,如下图所示,已经没有相关数据库用户名与密码的配置,只有自定义的 XXX,YYY作为查找KEY

SpringBoot 加密数据库连接信息    

2: 修改启动类 ,如下图所示,启动的时候,多加载注解

@EnableDataSourcePlaceHolder

SpringBoot 加密数据库连接信息  

 

3: 创建DataSourcePlaceHolderPostProcessor类

 

SpringBoot 加密数据库连接信息

 可以在DataSource创建之后,拿到该对象,可以根据url值中的XXX/YYY 到配置中心或者本地配置中获取相关的信息,补充DataSource的参数

4: 其他并没有什么变更,按照原先使用的方式即可。