背景说明
项目对接配置文件加密,比如数据库密码、redis密码等。但是密文只能放到指定的配置文件中(important.properties),该配置文件又不能接收环境变量,所以就很难区分不同环境的不同配置(不同环境的数据库密码、redis密码一般都不一样)。
pom.xml解决方案
在pom.xml中通过指定profiles解决,同时在build下开启@@替换变量的功能。如下图:
开启@@替换变量
然后再important.properties中用@符号获取pom.xml里面的值
configMap解决方案
再yml部署文件中(k8s),将important.properties文件的内容放到configMap中,然后将configMap挂载到编译后的important.properties文件地址下。这样只要进行部署,important.properties文件的内容就会被yml部署文件里的内容替换。
然后不同的环境配置不同的yml即可。核心配置如下:
configMap中important.properties文件的内容:
挂载目录配置: