SpringBoot @Value注释使用

时间:2017-05-23 13:15:11

标签: spring-boot annotations

我一直在研究一个场景,我想在application.yml中解密一个条目。我要加密的值,保存在yml文件中,然后在模块出现时解密

@Value("${app.datasource.password}")
private String password; 

我试图找出 @Value 如何在内部工作,以便我可以修改它以包含此功能。如果有其他方法可以说通过引入自定义注释和AnnotationProcessor,它也会有所帮助。

1 个答案:

答案 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
    }

}