java Spring@Value注释方法,当属性不可用时使用默认值
处境
我正在从注入属性。属性将文件放入带有@Value注释的字段中。但是,这些属性表示敏感凭据,所以我将它们从存储库中删除。我仍然希望这样,以防有人想要运行项目,但却没有。属性文件,其凭据的默认值将设置为字段
问题
即使我将默认值设置为字段本身,我也会遇到异常。属性文件不存在:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxx': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'secret' in string value "${secret}"
以下是注释字段:
@Value("${secret}")
private String ldapSecret = "secret";
我希望在这种情况下只设置普通字符串“secret”
# 1 楼答案
实际上,将始终使用默认值。为了克服这个问题,我使用了一个字符串值
# 2 楼答案
准确回答你的问题
下面还有一些变化,以确保示例的完整性
默认字符串为空:
默认数字:
# 3 楼答案
只需使用:
# 4 楼答案