逻辑运算符在 SpEL 中未按预期工作

Nis*_*til 1 java spring spring-el

我有一个用例,其中有两个布尔属性,我需要根据它们导出实例变量的值。下面是代码片段:

@Value("${propFlag1:false}")
private Boolean flag1;

@Value("${propFlag2:false}")
private Boolean flag2;

@Value("${propFlag2:false && propFlag1:false}")
private Boolean flag3;

@Value("${propFlag1:false && propFlag2:false}")
private Boolean flag4;
Run Code Online (Sandbox Code Playgroud)

这里,propFlag1propFlag2是属性文件中的标志,分别具有值truefalse。为和
正确注入值,但对于和,注入的值分别为和,而不是两者。 所以,当我尝试使用flag1flag2flag3flag4falsetruefalse
&&, it is not ANDing two values, rather it is injecting the value of first variable itself. What am I doing wrong here?

PS:我是 SpEL 的新手

小智 5

根据SpEL 文档,这应该有效:

@Value("#{${propFlag2:false} and ${propFlag1:false}}")
private Boolean flag3;

@Value("#{${propFlag1:false} and ${propFlag2:false}}")
private Boolean flag4;
Run Code Online (Sandbox Code Playgroud)