我通常习惯把所有的第三方配置都保存在一个yml配置文件中,比如微信登录的AppId、AppSecret等,然后再通过通过springboot提供的配置文件引入方式将配置参数引入进业务中,就像这样:
前段时间公司连续对接了腾讯云API、微信登录、微信支付后,突然发现,当在同一个项目下,无论是在不同配置文件,不同路径下的配置文件,当引入配置项的 @Value 注解中的name相同时,其中的值会互相覆盖。
比如我有一个yml文件是这样的:
weixin: appId: wx123456
第二个yml文件是这样的:
alipay: appId: ali789456
那么,在我分别在两个配置类中引入这两个配置参数时,alipay的AppID会永远被weixin的AppID覆盖,具体的谁被覆盖取决于配置文件的文件名排序,后者覆盖前者。