我将 .properties 文件中的属性注入到 @Value 注释的字段中。但是,此属性提供敏感的凭据,因此我将它们从存储库中删除。我仍然希望在某些情况下想要运行项目并且没有带有凭证的.properties文件,该凭证会将默认值设置为字段。
即使我将默认值设置为字段本身,当.properties文件不存在时,也会出现异常:
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”。
为了准确回答您的问题…
@Value("${secret:secret}") private String ldapSecret;
为了示例的完整性,下面还有更多变化…
默认字符串为空:
@Value("${secret:#{null}}") private String secret;
默认数字:
@Value("${someNumber:0}") private int someNumber;