【发布时间】:2019-05-18 03:27:39
【问题描述】:
我正在尝试将 Integer 属性设置为默认值 1,如果它不存在或者其当前值为 0 并且我无法让 0 比较正常工作。
原始值(如果设置)将通过命令行输入。
这是我班上的相关行:
@Configuration
public class AppConfig {
@Value("${${instance.procmultiplier} == 0 ? Integer.parseInt('1') : ${instance.procmultiplier}}")
public Integer procMultiplier;
}
我尝试了@Value 注释的多种变体,有一次,我发誓它识别了 0 值,我无法回到那个状态。我首先试图让它识别 0 值并默认为 1,然后我将尝试插入一个空检查。
有没有办法在同一个注解中同时做到这两点?我的一个想法是将 null-check 和 0-check 拆分为两个不同的属性,基本上在属性文件中有procmultiplier=${instance.procmultiplier:1},然后将注释更改为@Value("${${procmultiplier} == 0 ? Integer.parseInt('1') : ${procmultiplier}}"),但我没有尝试任何工作。
我的命令是:mvn clean package && java -Dspring.profiles.active=json -Dinstance.procmultiplier=0 -jar target/MyApp-0.0.1-SNAPSHOT.jar。
该属性最终与我在命令行中设置的值相同。
关于如何检查不存在和 0 的任何想法,如果其中任何一个为真,则默认为 1,否则设置为通过命令行输入的任何内容?
【问题讨论】:
标签: java spring spring-boot spring-el