我在设置我需要在代码中使用的属性时遇到问题。在我的班上,我已经宣布了这样的财产:
@Value("${foo.password}")
private String fooPassword;
这通常会很好,但是当我提到的属性文件如何存储在其他环境中时会有一些皱纹。在我们所有的上层环境中,我们的值都是加密存储的。但是,在我们的开发环境中,我们无法解密该值,因此我们必须将其解密。加密值用一个密钥存储,而解密的值用另一个密钥存储。
为了制作通用解决方案,我希望能够在@Value注释中指定备份值。有点像...
@Value("${foo.passwordEncrypted ? foo.passwordDecrypted }")
private String fooPassword;
...所以在开发环境中它可以获取解密值,而上层环境可以获取加密值并执行它需要做的事情。
这是否可以通过@Value实现?是否可以创建我们自己的自定义注释,可以做类似的事情?
答案 0 :(得分:0)
我相信你正在寻找一个"默认"值?在那种情况下,这样使用它
@Value("${foo.passwordEncrypted:default_decrypted_value}")