如果它包含美元符号 (${var}),则无法读取属性
Could not read properties if it contains dollar symbol (${var})
我有 属性 个包含以下内容的文件:
INVALID_ARGUMENT=Field ${fieldName} is invalid or missing.
我使用 spring 配置阅读这篇文章:
@PropertySource("error_messages_en.properties")
@Configuration
public static class ErrorMessagesEn {
@Value("${INVALID_ARGUMENT}")
private String invalidArgument;
}
但在应用程序启动后我看到:
Could not resolve placeholder 'fieldName' in value "Ïîëå ${fieldName} íåêîððåêòíî çàïîëíåíî èëè ïðîïóùåíî."
我需要 ${fieldName}
因为我想使用 repacer:
如何避免这个错误?
您应该转义 ${fieldName}
,因为它未定义为 Spring 属性。
你可以看看这个问题:Escape property reference in spring property file 和相关的答案。
你应该这样写:
INVALID_ARGUMENT=Field #{'$'}{fieldName} is invalid or missing.
如果您使用的是 yaml 文件,则需要用引号将值括起来
参数:"Field #{'$'}{fieldName} is invalid or missing."
我有 属性 个包含以下内容的文件:
INVALID_ARGUMENT=Field ${fieldName} is invalid or missing.
我使用 spring 配置阅读这篇文章:
@PropertySource("error_messages_en.properties")
@Configuration
public static class ErrorMessagesEn {
@Value("${INVALID_ARGUMENT}")
private String invalidArgument;
}
但在应用程序启动后我看到:
Could not resolve placeholder 'fieldName' in value "Ïîëå ${fieldName} íåêîððåêòíî çàïîëíåíî èëè ïðîïóùåíî."
我需要 ${fieldName}
因为我想使用 repacer:
如何避免这个错误?
您应该转义 ${fieldName}
,因为它未定义为 Spring 属性。
你可以看看这个问题:Escape property reference in spring property file 和相关的答案。
你应该这样写:
INVALID_ARGUMENT=Field #{'$'}{fieldName} is invalid or missing.
如果您使用的是 yaml 文件,则需要用引号将值括起来
参数:"Field #{'$'}{fieldName} is invalid or missing."