无法从 Kubernetes 配置映射中读取 int 值

Not able to read int values from Kubernetese config maps

我正在尝试在 kubernetese 上部署一个 springboot 应用程序。我已将所有环境变量存储在配置映射中并尝试从那里读取值。在某些属性中我们需要读取 int 值。

在我们的代码中,它看起来像这样:

application.properties :

TOKEN_RETRY_COUNT=3

因为我们必须从 ConfigMap 中读取它,所以我们更新了我们的 application.properties,如下所述:

更新 application.properties :

TOKEN_RETRY_COUNT=${STARGATE_TOKEN_RETRY_LIMIT}

配置地图

Config Maps中配置的值是这样的。我不得不加双引号,因为没有任何引号是不允许的。

"STARGATE_TOKEN_RETRY_LIMIT": "3",

现在,当我在 kubernetese 上部署后尝试读取这些值时,出现以下错误:

对于STARGATE_TOKEN_RETRY_LIMIT:

Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "STARGATE_TOKEN_RETRY_LIMIT"

现在,我更新了代码以将此值作为 String,然后将其解析为 int,但这不是理想的方式。应该有一些标准的方法来采用不同的类型。

如果我们不能在 Config Maps 中处理不同的类型,那么在 kubernetese 上为 Springboot 应用程序传递不同的应用程序属性的理想方法是什么?

我认为该问题与 属性 值 (3) 被指定为字符串 ("3") 无关。如果仔细阅读错误消息,您会发现 NumberFormatException 是由于试图将 STARGATE_TOKEN_RETRY_LIMIT(字面意思)解析为 int 而导致的。配置映射传递给 application/container.

的方式可能有问题