春天(3.1): 给定具有多行值的属性文件(当然实际值更大):
requestStatuses=select sysdate \
from dual
我按照描述设置了Spring:
<util:properties id="sql_lookup_data_repo"
location="classpath:sql_lookup_data_repo.properties"/>
按照描述使用:
@Value("#{sql_lookup_data_repo.requestStatuses}")
public void setRequestStatuses(String requestStatuses) {
this.requestStatuses = requestStatuses;
}
乍一看似乎工作但只读取第一行属性值。
当spring正在启动时,它正在正确读取文件(已调试)。 在评估SpEL表达式时似乎丢失了它。
是否可以将此弹簧功能用于多行属性文件值以及如何使用?
已经检查过:
答案 0 :(得分:1)
解决方案:
多行属性需要在每行末尾加上反斜杠。
但是如果你在反斜杠之后(在换行符之前)有空格(不可见!),评估将在那时停止。
(很抱歉,我不能在这里看到隐形字符:),所以我无法提供示例)
警告:更多是关于不正确使用Java属性文件!你可以在不使用Spring的@Value特性(普通Properties.load()
)的情况下遇到这个问题。
答案 1 :(得分:0)
这对我来说很好......
lines=foo \
bar \
baz
@Value("#{fooprops.lines}")
public void setMultiLine(String lines) {
System.out.println(lines);
}
foo bar baz