情况
我正在将**.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";
我希望在这种情况下只设置普通的String“secret”。
5条答案
按热度按时间egdjgwm81#
为了准确回答你的问题。。
下面还有一些变化,以使示例完整...
将字符串默认为null:
默认数字:
vfwfrxfs2#
只需用途:
ds97pgxw3#
vd8tlhqk4#
Spring将优先从属性文件中读取值,如果不存在,则将采用默认值(这里的'xyz'是默认值)。
键(key.name)前后不应有任何空格。
ecbunoof5#
实际上默认值将始终使用。为了克服这个问题,我使用一个字符串值