Подтвердить что ты не робот

Условный оператор внутри Spring config

Как иметь условный оператор в конфигурационном файле spring

У меня есть String bean (b), значение которого зависит от значения свойства (a). a задается динамически на основе среды, в которой он выполняется.

if (a)
 b="yes"
else
 b="no"

Как это сделать в spring config?

4b9b3361

Ответ 1

Как сказал Райан, SpEL может помочь. Вы должны сделать что-то вроде этого в Spring xml:

<bean id="flag" class="java.lang.Boolean">
    <constructor-arg value="#{ systemProperties['system.propery.flag'] ?: false }" />
</bean>

<bean id="bean" class="com.my.MyBean">
    <property name="property" value="#{ flag ? 'yes' : 'no' }"/>
</bean>

Ответ 3

Попробуйте это... Это сработает.. Учитывая Roll, Location, имя находится в файле свойств, и я читаю его выше этой строки.

<bean id="Student" class="beans.Student"> <property name="name" value="#{ ${Roll}== 1 ? '${Location}' : '${name}' }"/> </bean>

Ответ 4

ниже работает для меня. системное свойство передано как java -Dflag = true -jar project.jar

 <bean id="flag" class="java.lang.Boolean">
    <constructor-arg value="#{ systemProperties['flag'] ?: false }" />
  </bean>

  <bean id="bean" class="com.my.MyBean">
    <property name="property" value="#{ flag ? 'yes' : 'no' }"/>
 </bean>