java - 使用 Spring 的 @Value 注释插入时如何避免截断零前导数字?

标签 java spring spring-boot annotations

假设我们有一个环境变量导出为:

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/

相关文章:

java - ImageJ API : Getting RGB values from image

java - 在非组件对象上使用 Spring @Value

java - JPA:如何处理多个实体

java - 调整java swing中复选框之间的间距

java - 数组深拷贝和浅拷贝

Java多线程使用 sleep 和中断

java - 如何处理 API 中格式不正确的请求

java - Spring 验证注释 - 如何验证字符串中的 2 个字符条目是否是实际的美国州?

java - Spring Boot 中的 JSON Java 8 LocalDateTime 格式

java - Spring Boot 2.3.1 ElasticSearch 7.6.2