我需要从Java的属性文件中读取@salt_key@和@Secret_key。i、 在Java代码中声明

我需要从Java的属性文件中读取@salt_key@和@Secret_key。i、 在Java代码中声明,java,Java,首先在配置文件中存储secretKey和salt,如下所示: @Bean @Scope("prototype") protected SecretKeySpec secretkey() throws InvalidkeySpecException, NoSuchAlgorithamException { String secretKey = "Fra@d@15gt"; String salt = "Sa@t5dS3@"; K

首先在配置文件中存储secretKey和salt,如下所示:

@Bean

@Scope("prototype")

protected SecretKeySpec secretkey() throws InvalidkeySpecException, 
NoSuchAlgorithamException {

String secretKey = "Fra@d@15gt";

String salt = "Sa@t5dS3@";

KeySpec spec = new PBEKeySpec(secretKey.toCharArray(), salt.getBytes(), 65536, 256);

SecretKey tmp = secretKeyFactory().generateSecret(spec);

SecretKeySpec secretKey1 = new SecretKeySpec(tmp.getEncoded(), "AES");

return secretKey1;

}
然后用java代码阅读它,如下所示:

secretKey=Fra@d@15gt
salt=Sa@t5dS3@
确保@Value中的字符串与您在配置文件中保存的内容完全匹配。
对于不同的环境,如生产/质量保证/本地,将有不同的secretKey和salt。对于每个环境,您可以使用特定于环境的值创建单独的文件。

我不确定您的问题是否非常清楚。你的标题表明你想从Java代码和属性文件中读取值,这似乎是两件不同的事情。一般来说,我倾向于关闭没有正文的问题-好的问题总是有正文,即不仅仅是代码。实际上,我需要从java中的属性文件中读取secretKey&salt变量,而不是硬编码。
@Bean

@Scope("prototype")

protected SecretKeySpec secretkey(@Value("${secretKey}") final String secretKey,
        @Value("${salt}") final String salt) 
        throws InvalidkeySpecException, NoSuchAlgorithamException {
    KeySpec spec = new PBEKeySpec(secretKey.toCharArray(), salt.getBytes(), 65536, 256);  
    SecretKey tmp = secretKeyFactory().generateSecret(spec);
    SecretKeySpec secretKey1 = new SecretKeySpec(tmp.getEncoded(), "AES");
    return secretKey1;
}