我一直在研究一个场景,我想在application.yml中解密一个条目。我要加密的值,保存在yml文件中,然后在模块出现时解密
@Value("${app.datasource.password}")
private String password;
我试图找出 @Value 如何在内部工作,以便我可以修改它以包含此功能。如果有其他方法可以说通过引入自定义注释和AnnotationProcessor,它也会有所帮助。
答案 0 :(得分:3)
@Value Annotation只接受一个Spring SPEL表达式并对其进行求值,以设置带注释字段的结果值。
对于您的用例,您可以编写Decrypter对象并编写一种方法来解密您的数据并使用它如下所示。
@Value("#{passwordDecrypter.decrypt()}")
private String password;
写一个Bean进行解密
@Component
public class PasswordDecrypter{
@Value("${app.datasource.password}")
private String password;
public String decrypt(){
// Return decrypted value
}
}