我在配置文件中有一个属性,如:
@Value("${MAX_VALUE:#{100}}")
private int maxSize;
在属性文件中,我有:
MAX_VALUE=
我正在使用java配置
@Bean
public EncryptablePropertyPlaceholderConfigurer defaultProperties() {
final EncryptablePropertyPlaceholderConfigurer defaultProperties = new EncryptablePropertyPlaceholderConfigurer(
textEncryptor());
Resource[] resources = new ClassPathResource[] { new ClassPathResource(jobProperties)};
defaultProperties.setLocations(resources);
defaultProperties.setIgnoreUnresolvablePlaceholders(true);
defaultProperties.setIgnoreResourceNotFound(true);
defaultProperties.setSearchSystemEnvironment(true);
return defaultProperties;
}
当最大值参数未设置时,我希望它使用默认值。当前它给我一个“numberformatexception:for input string:”“”
是否有任何方法可以实现这一点,或者我必须从属性文件中删除max\ u值才能使用默认值?
3条答案
按热度按时间wa7juj8i1#
下面的spel表达式似乎适用于null(中缺少
application.yaml
),空值和有效数字:这里创建一个字符串值
MAX_VALUE
使用空值作为默认值。如果此值与
int
(非负)模式,按原样使用,否则为默认值100
提供。vltsax252#
不能有空字符串
int
类型,但可以将类型更改为Integer
并且拥有null
使用spring表达式语言检查默认值envsm3lx3#
我没有意识到spring表达式langauge支持三元运算符。我通过以下方法解决了上述问题:
有关spel的更多信息