.proprties 文件中的反斜杠 (\) 被 Spring 的“环境”变量忽略

San*_*eev 5 java spring spring-annotations spring-web

@Configuration我正在尝试使用@PropertySource和变量在 Spring java 类中加载 config.proprties 文件数据Environment

示例:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/PropertySource.html 问题是,我有一个属性,其值如下:

     serverName = abc\xyz
Run Code Online (Sandbox Code Playgroud)

当我使用方法读取这个属性时,

     String server= env.getProprty("serverName");
     System.out.print(server);
Run Code Online (Sandbox Code Playgroud)

值打印为“abcxyz”。

请注意,我尝试使用双反斜杠,例如

     serverName = abc\\xyz
Run Code Online (Sandbox Code Playgroud)

但它仍然只是忽略值字符串中的 \ 。另外,我不能使用正斜杠代替反斜杠。

你能帮我修复它吗?提前致谢!!

Mic*_*man 0

这是一个真正丑陋的黑客,但您可以尝试对符号“\”(即“\u005c”)使用unicode转义序列,因此不要使用字符串值“abc\xyz”,而使用“abc\u005cxyz”。但它会再次将其转换为“abc\xyz”,然后将“\”视为转义符号的开始。因此,如果第一个不起作用,您可以尝试将“abc\\xyz”替换为“abc\u005c\u005cxyz”。看看第一个或第二个选项是否适合您。但事实上,我很惊讶简单的转义“\\”并没有解决你的问题。另外,如果全部失败,请尝试此“abc\\\\xyz” - 这是双重转义。