繁体   English   中英

Spring 引导:配置未正确加载我的密码变量来自 application.yml

[英]Spring Boot: configuration does not load correctly my password variable from application.yml

我在使用 Spring 引导配置时遇到问题:

我的所有参数的配置都没有正确加载。

我正在使用带有 application-qualif.yml 配置文件的配置文件(在我的例子中为“qualif”),但它的值不会覆盖 application.yml 值。 此行为是预期的。

我也在使用龙目岛。

我的 application.yml 在这里:

mail:
  login:    'login'
  address:  'login@email.com'
  password: 'myRealPassword'

我的 application-qualif.yml 在这里:

spring:
  otherValues: ...

我这里的配置:

@Configuration
@Getter
public class SmtpConfiguration {
    @Value("${mail.login}")
    private String login;

    @Value("${mail.address}")
    private String address;

    @Value("${mail.password}")
    private String password;
}

当我尝试显示密码时,它总是返回“123456”,但我在我的项目中找不到“123456”的任何引用。 此处应为myRealPassword

log.printf(Level.INFO, "Mail password: " + smtpConfiguration.getPassword());

来自 smtpConfiguration 的其他值从 application.yml 返回相同的值

2021-08-19 10:55:26.102 INFO  192494 --- [   scheduling-1] x.x.x.x.x.x.XXXScheduledTask: 
Attempt to send mail using login@email.com with password 123456

控制台 output:

2021-08-19 10:48:49.572 INFO  192412 --- [   scheduling-1] x.x.x.x.x.x.XXXService: 
Mail password: 123456

此代码在 Linux env 下运行,它在我的本地计算机 (Windows) 上运行,不使用任何配置文件。

感谢您的回复。

我发现了问题。

似乎名为 MAIL_PASSWORD 的 linux env 变量存在并且等于“123456”。

如果配置没有像这样指定它,我不知道这会覆盖 YAML 值:

mail:
  password: ${mail.password}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM