我有一个带有ConfigurationProperties
类的spring-boot应用程序。我使用helm + kubernetes部署应用程序,因此传递env变量以覆盖配置值。但不知何故,有些变量没有被此env变量覆盖,我不知道为什么。配置类如下所示:
@ConstructorBinding
@ConfigurationProperties("abc-config")
data class AbcConfiguration(
private var authorizationConfigs: List<TokenGrantConfiguration> = listOf(),
) {}
class TokenGrantConfiguration(
clientId: String,
clientSecret: String,
)
我的env变量是这样的:
ABC_CONFIG_AUTHORIZATION_CONFIGS_0_CLIENT_ID="some_client_id"
ABC_CONFIG_AUTHORIZATION_CONFIGS_0_CLIENT_SECRET="some_client_secret"
补充一下,我的应用程序还有SPRING_APPLICATION_JSON
变量:
{
abc-config: {
"authorization-configs": [
{
"clientId": "",
"clientSecret": ""
}
]
}
}
因此,当我运行应用程序时,clientId和secret值都为空,不会被env变量覆盖。我还使用System.env("...")
检查了env变量是否设置正确,它们看起来是正确的。
你知道我错过了什么吗?
谢谢
1条答案
按热度按时间ecfdbz9o1#
要将环境变量放入SPRING_APPLICATION_JSON,必须按以下步骤操作: