如何在Spring中从本地属性文件动态填充@Value属性?

时间:2015-04-14 19:13:40

标签: java spring

我在设置我需要在代码中使用的属性时遇到问题。在我的班上,我已经宣布了这样的财产:

@Value("${foo.password}")
private String fooPassword;

这通常会很好,但是当我提到的属性文件如何存储在其他环境中时会有一些皱纹。在我们所有的上层环境中,我们的值都是加密存储的。但是,在我们的开发环境中,我们无法解密该值,因此我们必须将其解密。加密值用一个密钥存储,而解密的值用另一个密钥存储。

为了制作通用解决方案,我希望能够在@Value注释中指定备份值。有点像...

@Value("${foo.passwordEncrypted ? foo.passwordDecrypted }")
private String fooPassword;

...所以在开发环境中它可以获取解密值,而上层环境可以获取加密值并执行它需要做的事情。

这是否可以通过@Value实现?是否可以创建我们自己的自定义注释,可以做类似的事情?

1 个答案:

答案 0 :(得分:0)

我相信你正在寻找一个"默认"值?在那种情况下,这样使用它

@Value("${foo.passwordEncrypted:default_decrypted_value}")