如何在属性文件 spring 引导中转义“@”
How to escape "@" in properties file spring boot
我有一个 spring 启动应用程序连接到 salesforce 以从 salesforce 获取数据并将数据推送到 SQL 服务器数据库。
我正在尝试从 application.properties 文件中获取所有属性。
我的密码有@,因此在执行期间读取 属性 时,我得到 "example" 作为我的密码而不是 "example@country"
Eg :
Pwd = example@country
我检查了一些有用的链接,但没有成功,感谢您的帮助
https://docs.oracle.com/cd/E23095_01/Platform.93/ATGProgGuide/html/s0204propertiesfileformat01.html
用于获取配置道具的实用程序包。
package SFToJava.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
@Configuration
public class configUtility {
@Autowired
private Environment env;
public String getProperty(String pPropertyKey) {
return env.getProperty(pPropertyKey);
}
}
属性文件:
password = example@country
我在我的服务class中获取数据如下:
loginParams.add(new BasicNameValuePair("client_id",configUtil.getProperty("consumerKey")));
loginParams.add(new BasicNameValuePair("client_secret", configUtil.getProperty("consumerSecret")));
loginParams.add(new BasicNameValuePair("username", configUtil.getProperty("username")));
loginParams.add(new BasicNameValuePair("password", configUtil.getProperty("password")));
我希望密码在解析到列表时应该有 "example@country" 而不是只得到 "example"。
仅供参考。我可以直接使用如下密码连接到 Salesforce
private static final String username = "******";
private static final String password = "example@coutnry";
private static final String consumerKey = "*************8";
private static final String consumerSecret = "************";
loginParams.add(new BasicNameValuePair("client_id", consumerKey));
loginParams.add(new
BasicNameValuePair("client_secret", consumerSecret));
loginParams.add(new
BasicNameValuePair("grant_type", "password"));
loginParams.add(new
BasicNameValuePair("username", username));
loginParams.add(new
BasicNameValuePair("password", password));
通常您不必转义 @
或者您可以在 .properties
文件中使用转义的 \@
:
mail.address=user\@domain.com
但是我在使用它进行身份验证时遇到了一些问题。在这种情况下,您可能希望将编码的 %40
用于 @
:
# replace @ in email with %40
mail.address=user%40domain.com
我有一个 spring 启动应用程序连接到 salesforce 以从 salesforce 获取数据并将数据推送到 SQL 服务器数据库。 我正在尝试从 application.properties 文件中获取所有属性。 我的密码有@,因此在执行期间读取 属性 时,我得到 "example" 作为我的密码而不是 "example@country"
Eg :
Pwd = example@country
我检查了一些有用的链接,但没有成功,感谢您的帮助
https://docs.oracle.com/cd/E23095_01/Platform.93/ATGProgGuide/html/s0204propertiesfileformat01.html
用于获取配置道具的实用程序包。
package SFToJava.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
@Configuration
public class configUtility {
@Autowired
private Environment env;
public String getProperty(String pPropertyKey) {
return env.getProperty(pPropertyKey);
}
}
属性文件:
password = example@country
我在我的服务class中获取数据如下:
loginParams.add(new BasicNameValuePair("client_id",configUtil.getProperty("consumerKey")));
loginParams.add(new BasicNameValuePair("client_secret", configUtil.getProperty("consumerSecret")));
loginParams.add(new BasicNameValuePair("username", configUtil.getProperty("username")));
loginParams.add(new BasicNameValuePair("password", configUtil.getProperty("password")));
我希望密码在解析到列表时应该有 "example@country" 而不是只得到 "example"。
仅供参考。我可以直接使用如下密码连接到 Salesforce
private static final String username = "******";
private static final String password = "example@coutnry";
private static final String consumerKey = "*************8";
private static final String consumerSecret = "************";
loginParams.add(new BasicNameValuePair("client_id", consumerKey));
loginParams.add(new
BasicNameValuePair("client_secret", consumerSecret));
loginParams.add(new
BasicNameValuePair("grant_type", "password"));
loginParams.add(new
BasicNameValuePair("username", username));
loginParams.add(new
BasicNameValuePair("password", password));
通常您不必转义 @
或者您可以在 .properties
文件中使用转义的 \@
:
mail.address=user\@domain.com
但是我在使用它进行身份验证时遇到了一些问题。在这种情况下,您可能希望将编码的 %40
用于 @
:
# replace @ in email with %40
mail.address=user%40domain.com