Логические операторы не работают должным образом в SpEL - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть сценарий использования, где у меня есть два логических свойства, на основе которых мне нужно получить значение переменной экземпляра.Ниже приведен фрагмент кода:

@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;

Здесь propFlag1 и propFlag2 - это флаги из файла свойств, имеющие значения true и false соответственно.
Значения вводятся правильно дляflag1 и flag2, но для flag3 и flag4 вводятся значения false и true соответственно вместо false для обоих.
Итак, когда я пытаюсь использовать &&, это не AND двух значений, скорее это инъекция значения самой первой переменной.Что я тут не так делаю?

PS: я новичок в SpEL

1 Ответ

0 голосов
/ 25 апреля 2018

Согласно документации SpEL , это должно работать:

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

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