java - 如何在映射到Spring配置类中的列表的环境变量中转义逗号

标签 java spring docker

该问题是以下问题的重复项,该问题已经存在5年以上了,尚未得到公认的答案。

How to escape "," (comma) in Spring String to array or List conversion

我有一个包含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都只是在逗号字符之间进行字符串分割,导致我的某些值包含诸如\'"之类的字符。

最佳答案

您在 Spring 启动时无法转义逗号以获取列表,恐怕您将不得不考虑加载这些环境变量的另一种方法

关于java - 如何在映射到Spring配置类中的列表的环境变量中转义逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59829418/

相关文章:

java - 如何在 Spring 中发送和检索参数?

azure - 使用azure应用程序网关的认证链中的问题

docker - RabbitMQ 无法加入集群

java - 使用 Java Rally Rest API 将 200 多个测试用例添加到测试集

java - 泛型方法使用类型作为参数

java - Hibernate 将 NULL 插入原始类型字段

java - Jpa&Hibernate是否加载数据库中异步更改的数据?

java - 为什么需要在界面中导入库

spring - 使用 Spring JDBC 在事务中插入新的父子记录时出错

docker - 使用 docker 进行 CI/CD 时节省空间的最佳实践是什么?