假设我们有一个环境变量导出为:
export SOME_STRING_CONFIG_PARAM="01"
和 application.properties
具有:
some.string.config.param=${SOME_STRING_CONFIG_PARAM:01}
注入(inject)到 Java 字段:
@Value("${some.string.config.param}")
String someStringConfigfParam;
启动 Spring 应用程序后打印出字段:
System.out.println("someStringConfigParam: " + someStringConfigParam);
结果:
someStringConfigParam: 1
如何告诉 Spring 该值应该被视为一个字符串?
最佳答案
我通过你的演示项目得到了正确答案:
This is the Test Property Value = 01
但是我在 yml
文件中遇到了问题,原因是 yml
默认将 01
视为整数。只需使用双引号即可解决。
在yml
文件中输入示例:
a: 123 # an integer
b: "123" # a string, disambiguated by quotes
c: 123.0 # a float
d: !!float 123 # also a float via explicit data type prefixed by (!!)
e: !!str 123 # a string, disambiguated by explicit type
f: !!str Yes # a string via explicit type
g: Yes # a boolean True (yaml1.1), string "Yes" (yaml1.2)
h: Yes we have No bananas # a string, "Yes" and "No" disambiguated by context.
另见:
https://en.wikipedia.org/wiki/YAML
Do I need quotes for strings in Yaml?
关于java - 使用 Spring 的 @Value 注释插入时如何避免截断零前导数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37860589/