如何在属性文件 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