我正在尝试使用@PropertySource
和Environment
变量在Spring @Configuration
java类中加载config.proprties文件数据。
示例:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/PropertySource.html问题是,我有一个属性,其值如下所示:
serverName = abc\xyz
当我使用方法读取此属性时,
String server= env.getProprty("serverName");
System.out.print(server);
值打印为“abcxyz”。
请注意,我尝试使用双反斜杠,例如:
serverName = abc\\xyz
但它仍然只是简单地从值字符串中忽略\。而且我不能用正斜杠代替反斜杠。
你能帮我修一下吗?先谢谢了!!
3条答案
按热度按时间5ktev3wc1#
这是一个真实的丑陋的黑客,但您可以尝试对符号“\”使用unicode转义序列,即“\u005c”,因此请使用“abc\u005cxyz”而不是字符串值“abc\xyz”。但它会再次将其转换为“abc\xyz”,然后将“\”视为转义符号的开始。因此,如果第一个转义序列不起作用,您可以尝试将“abc\xyz”替换为“abc\u005c\u 005 cxyz”。看看第一个或第二个选项是否对你有效。但事实上,我很惊讶简单的转义“\”没有解决你的问题。如果都失败了,试试“abc\\xyz”-这是双重转义。
mdfafbf12#
我使用了spring 3.1.4-RELEASE,如果属性文件中的值包含'\',它就可以工作。比如serverName = abc\xyz
fcg9iug33#
我在配置文件中用正斜杠存储它们,而不是反斜杠。
在阅读时,我用双反斜杠替换了它们。
源路径= C:/用户/文档/样本数据/我的输入文件. txt
这对我来说是正确的。