首页 > 解决方案 > 如何在映射到 Spring 配置类中的列表的环境变量中转义逗号

问题描述

此问题与以下问题重复,该问题已超过 5 年,尚未收到可接受的答案。

如何将Spring String中的“,”(逗号)转义为数组或列表转换

我有一个包含 docker 的 spring-application,可以通过环境变量进行自定义。

Spring 将获取环境变量并将它们映射到配置类中的字段。

一个这样的字段是List<String>. 它正确地将我的环境变量拆分为逗号字符。当我的一个字段包含逗号时,问题就出现了。

我尝试了以下方法:

-e LIST1='"1","2a,2b","3"'
-e LIST2="'1','2a,2b','3'"
-e LIST3="1,2a\,2b,3"
-e LIST4="1,2a\\,2b,3"
-e LIST5='1,2a\,2b,3'
-e LIST6='1,2a\\,2b,3'

在每种情况下,spring 都会简单地将字符串拆分为逗号字符,从而导致我的一些值包含诸如\, ',之类的字符"

标签: javaspringdocker

解决方案


无法在春季启动时为列表转义逗号,恐怕您将不得不考虑加载这些环境变量的替代方法


推荐阅读