Spring Boot 配置中的Sping Boot 环境变量未解析

wj8zmpe1  于 2022-12-29  发布在  Spring
关注(0)|答案(2)|浏览(154)

我有以下application.properties,其中有一个服务定义

service.user=${SERVICE_USER}
service.password=${SERVICE_PASSWORD}
service.url=http://someurl.com/api

然后在环境中指定用户和密码

SERVICE_USER=test
SERVICE_PASSWORD=test

按如下方式读入配置

@Configuration
@ConfigurationProperties(prefix = "service")
public class ServiceConfiguration {

    private String url;

    private String user;

    private String password;

    // setters and getters
}

问题是${SERVICE_PASSWORD}似乎没有得到解决。在调试器中检查时,它正好是变量password的值。因此,我无法连接到服务,因为它给出错误“Authentication failed”。当我直接输入值时,如

service.user=test
service.password=test
service.url=http://someurl.com/api

一切都按预期运行。2代码中需要的环境变量必须直接读入吗?

gg0vcinb

gg0vcinb1#

您可以参考以下配置从属性文件中读取值。

@Configuration
public class ServiceConfiguration {

    @Value("${service.url}")
    private String url;

    @Value("${service.user}")    
    private String user;

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

f87krz0w2#

您可以使用prefix并执行相同的操作,如下所示:

@Configuration

@ConfigurationProperties(prefix = "service")

public class ServiceConfiguration {
@Value("${url}")  
private String url;
@Value("${user}")  
private String user;
@Value("${password}")  
private String password;}

相关问题