最近在springboot下的application配置文件中对jasypt进行配置的时候遇到过一个在配置文件中的属性更改之后不生效的问题,这是我当时不生效的一个配置:

jasypt.encryptor.password="${secretKey:}"

当时以为是这个插件本身存在的问题(但其实并不是),因为在我后面debug项目的启动过程之后发现是因为之前在写demo的时候曾经在环境系统环境变量中增加过一个名为JASYPT_ENCRYPTOR_PASSWORD的属性,然后jasypt.encryptor.password拿到的值就变成了JASYPT_ENCRYPTOR_PASSWORD的值。

这也说明springboot在启动的时候会对拿到的环境变量做一个转换,同时这个值的优先级是比你application配置文件中的配置要高的。

所以如果你们遇到类似application配置文件的配置不生效的问题,可以先检查以下你自己的系统环境变量中是不是有类似的同名属性,这个属性的值会将你的application配置文件中的属性值覆盖掉。

如何快速的确定是否存在这种 “同名” 的环境变量影响了你的配置,你可以选择重启重启,重启之后现象仍然存在,那就多半就是我这个问题了。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐